What header files do I need in order to define the standard library functions I use?
You need the ones that the ANSI/ISO standard says you should use. See Table XII.2.
The funny thing is, these are not necessarily the files that define what you’re looking for. Your compiler guarantees that (for example) if you want the EDOM macro, you can get it by including <errno.h>. EDOM might be defined in <errno.h>, or <errno.h> might just include something that defines it. Worse, the next version of your compiler might define EDOM somewhere else.
Don’t look in the files for the definition and use that file. Use the file that’s supposed to define the symbol
you want. It’ll work.
A few names are defined in multiple files: NULL, size_t, and wchar_t. If you need a definition for one of these
names, use a file you need to include anyway, or pick one arbitrarily. (<stddef.h> is a reasonable choice; it’s small, and it defines common macros and types.)
Standard library functions’ header files.
------------------------------------------------------------------------------------------------------------
Function/Macro Header File
------------------------------------------------------------------------------------------------------------
abort stdlib.h
abs stdlib.h
acos math.h
asctime time.h
asin math.h
assert assert.h
atan math.h
atan2 math.h
atexit stdlib.h
atof stdlib.h
atoi stdlib.h
atol stdlib.h
bsearch stdlib.h
BUFSIZ stdio.h
calloc stdlib.h
ceil math.h
clearerr stdio.h
clock time.h
CLOCKS_PER_SEC time.h
clock_t time.h
cos math.h
cosh math.h
ctime time.h
difftime time.h
div stdlib.h
div_t stdlib.h
EDOM errno.h
abort stdlib.h
abs stdlib.h
acos math.h
asctime time.h
asin math.h
assert assert.h
atan math.h
atan2 math.h
atexit stdlib.h
atof stdlib.h
atoi stdlib.h
atol stdlib.h
bsearch stdlib.h
BUFSIZ stdio.h
calloc stdlib.h
ceil math.h
clearerr stdio.h
clock time.h
CLOCKS_PER_SEC time.h
clock_t time.h
cos math.h
cosh math.h
ctime time.h
difftime time.h
div stdlib.h
div_t stdlib.h
EDOM errno.h
EOF stdio.h
ERANGE errno.h
errno errno.h
exit stdlib.h
EXIT_FAILURE stdlib.h
EXIT_SUCCESS stdlib.h
exp math.h
fabs math.h
fclose stdio.h
feof stdio.h
ferror stdio.h
fflush stdio.h
fgetc stdio.h
fgetpos stdio.h
fgets stdio.h
FILE stdio.h
FILENAME_MAX stdio.h
floor math.h
fmod math.h
fopen stdio.h
FOPEN_MAX stdio.h
fpos_t stdio.h
fprintf stdio.h
fputc stdio.h
fputs stdio.h
fread stdio.h
free stdlib.h
freopen stdio.h
frexp math.h
fscanf stdio.h
fseek stdio.h
fsetpos stdio.h
ftell stdio.h
fwrite stdio.h
getc stdio.h
ERANGE errno.h
errno errno.h
exit stdlib.h
EXIT_FAILURE stdlib.h
EXIT_SUCCESS stdlib.h
exp math.h
fabs math.h
fclose stdio.h
feof stdio.h
ferror stdio.h
fflush stdio.h
fgetc stdio.h
fgetpos stdio.h
fgets stdio.h
FILE stdio.h
FILENAME_MAX stdio.h
floor math.h
fmod math.h
fopen stdio.h
FOPEN_MAX stdio.h
fpos_t stdio.h
fprintf stdio.h
fputc stdio.h
fputs stdio.h
fread stdio.h
free stdlib.h
freopen stdio.h
frexp math.h
fscanf stdio.h
fseek stdio.h
fsetpos stdio.h
ftell stdio.h
fwrite stdio.h
getc stdio.h
getchar stdio.h
getenv stdlib.h
gets stdio.h
gmtime time.h
HUGE_VAL math.h
_IOFBF stdio.h
_IOLBF stdio.h
_IONBF stdio.h
isalnum ctype.h
isalpha ctype.h
iscntrl ctype.h
isdigit ctype.h
isgraph ctype.h
islower ctype.h
isprint ctype.h
ispunct ctype.h
isspace ctype.h
isupper ctype.h
isxdigit ctype.h
jmp_buf setjmp.h
labs stdlib.h
LC_ALL locale.h
LC_COLLATE locale.h
LC_CTYPE locale.h
LC_MONETARY locale.h
LC_NUMERIC locale.h
LC_TIME locale.h
struct lconv locale.h
ldexp math.h
ldiv stdlib.h
ldiv_t stdlib.h
localeconv locale.h
localtime time.h
log math.h
log10 math.h
longjmp setjmp.h
L_tmpnam stdio.h
malloc stdlib.h
mblen stdlib.h
mbstowcs stdlib.h
mbtowc stdlib.h
MB_CUR_MAX stdlib.h
memchr string.h
memcmp string.h
memcpy string.h
memmove string.h
memset string.h
mktime time.h
modf math.h
NDEBUG assert.h
NULL locale.h, stddef.h, stdio.h, stdlib.h, string.h, time.h
offsetof stddef.h
perror stdio.h
pow math.h
printf stdio.h
ptrdiff_t stddef.h
putc stdio.h
putchar stdio.h
puts stdio.h
qsort stdlib.h
raise signal.h
rand stdlib.h
RAND_MAX stdlib.h
realloc stdlib.h
remove stdio.h
rename stdio.h
rewind stdio.h
scanf stdio.h
SEEK_CUR stdio.h
SEEK_END stdio.h
SEEK_SET stdio.h
setbuf stdio.h
setjmp setjmp.h
setlocale locale.h
setvbuf stdio.h
SIGABRT signal.h
SIGFPE signal.h
SIGILL signal.h
SIGINT signal.h
signal signal.h
SIGSEGV signal.h
SIGTERM signal.h
sig_atomic_t signal.h
SIG_DFL signal.h
SIG_ERR signal.h
SIG_IGN signal.h
sin math.h
sinh math.h
size_t stddef.h, stdlib.h, string.h, sprintf, stdio.h
sqrt math.h
srand stdlib.h
sscanf stdio.h
stderr stdio.h
stdin stdio.h
stdout stdio.h
strcat string.h
strchr string.h
strcmp string.h
strcoll string.h
strcpy string.h
strcspn string.h
strerror string.h
strftime time.h
strlen string.h
strncat string.h
strncmp string.h
strncpy string.h
strpbrk string.h
strrchr string.h
strspn string.h
strstr string.h
strtod stdlib.h
strtok string.h
strtol stdlib.h
strtoul stdlib.h
strxfrm string.h
system stdlib.h
tan math.h
tanh math.h
time time.h
time_t time.h
struct tm time.h
tmpfile stdio.h
tmpnam stdio.h
TMP_MAX stdio.h
tolower ctype.h
toupper ctype.h
ungetc stdio.h
va_arg stdarg.h
va_end stdarg.h
va_list stdarg.h
va_start stdarg.h
vfprintf stdio.h
vprintf stdio.h
vsprintf stdio.h
wchar_t stddef.h, stdlib.h
wcstombs stdlib.h
wctomb stdlib.h
Cross Reference:
V.12: What is the difference between #include <file> and #include “file”?
XII.1: Why should I use standard library functions instead of writing my own?
getenv stdlib.h
gets stdio.h
gmtime time.h
HUGE_VAL math.h
_IOFBF stdio.h
_IOLBF stdio.h
_IONBF stdio.h
isalnum ctype.h
isalpha ctype.h
iscntrl ctype.h
isdigit ctype.h
isgraph ctype.h
islower ctype.h
isprint ctype.h
ispunct ctype.h
isspace ctype.h
isupper ctype.h
isxdigit ctype.h
jmp_buf setjmp.h
labs stdlib.h
LC_ALL locale.h
LC_COLLATE locale.h
LC_CTYPE locale.h
LC_MONETARY locale.h
LC_NUMERIC locale.h
LC_TIME locale.h
struct lconv locale.h
ldexp math.h
ldiv stdlib.h
ldiv_t stdlib.h
localeconv locale.h
localtime time.h
log math.h
log10 math.h
longjmp setjmp.h
L_tmpnam stdio.h
malloc stdlib.h
mblen stdlib.h
mbstowcs stdlib.h
mbtowc stdlib.h
MB_CUR_MAX stdlib.h
memchr string.h
memcmp string.h
memcpy string.h
memmove string.h
memset string.h
mktime time.h
modf math.h
NDEBUG assert.h
NULL locale.h, stddef.h, stdio.h, stdlib.h, string.h, time.h
offsetof stddef.h
perror stdio.h
pow math.h
printf stdio.h
ptrdiff_t stddef.h
putc stdio.h
putchar stdio.h
puts stdio.h
qsort stdlib.h
raise signal.h
rand stdlib.h
RAND_MAX stdlib.h
realloc stdlib.h
remove stdio.h
rename stdio.h
rewind stdio.h
scanf stdio.h
SEEK_CUR stdio.h
SEEK_END stdio.h
SEEK_SET stdio.h
setbuf stdio.h
setjmp setjmp.h
setlocale locale.h
setvbuf stdio.h
SIGABRT signal.h
SIGFPE signal.h
SIGILL signal.h
SIGINT signal.h
signal signal.h
SIGSEGV signal.h
SIGTERM signal.h
sig_atomic_t signal.h
SIG_DFL signal.h
SIG_ERR signal.h
SIG_IGN signal.h
sin math.h
sinh math.h
size_t stddef.h, stdlib.h, string.h, sprintf, stdio.h
sqrt math.h
srand stdlib.h
sscanf stdio.h
stderr stdio.h
stdin stdio.h
stdout stdio.h
strcat string.h
strchr string.h
strcmp string.h
strcoll string.h
strcpy string.h
strcspn string.h
strerror string.h
strftime time.h
strlen string.h
strncat string.h
strncmp string.h
strncpy string.h
strpbrk string.h
strrchr string.h
strspn string.h
strstr string.h
strtod stdlib.h
strtok string.h
strtol stdlib.h
strtoul stdlib.h
strxfrm string.h
system stdlib.h
tan math.h
tanh math.h
time time.h
time_t time.h
struct tm time.h
tmpfile stdio.h
tmpnam stdio.h
TMP_MAX stdio.h
tolower ctype.h
toupper ctype.h
ungetc stdio.h
va_arg stdarg.h
va_end stdarg.h
va_list stdarg.h
va_start stdarg.h
vfprintf stdio.h
vprintf stdio.h
vsprintf stdio.h
wchar_t stddef.h, stdlib.h
wcstombs stdlib.h
wctomb stdlib.h
Cross Reference:
V.12: What is the difference between #include <file> and #include “file”?
XII.1: Why should I use standard library functions instead of writing my own?
No comments:
Post a Comment