Compare with later versions:
C89 defines 15 standard headers and specifies 323 names.
This is the original ANSI standard ratified in 1989.
A program can determine that it is running in an
environment conforming at least to C89 by the
presence of __STDC__ with the value
1. It can further determine that it
does not conform to any later version by detecting the
absence of __STDC_.
This standard is technically identical to C90.
Headers defined in C89
Names specified in C89
####define#elif#else#endif#error#if#ifdef#ifndef#include#line#pragma#undef__DATE____FILE____LINE____STDC____TIME___IOFBF_IOLBF_IONBFabortabsacosacoshasctimeasinasinhassertatanatan2atanhatexitatofatoiatolautoBUFSIZbreakbreakbreakbsearchCHAR_BIT CHAR_MAX CHAR_MIN CLOCKS_PER_ SEC calloccaseceilcharcharclearerrclockclock_tconstcontinuecoscoshctimeDBL_DECIMAL_ DIG DBL_DIG DBL_EPSILON DBL_MANT_ DIG DBL_MAX DBL_MAX_ 10_ EXP DBL_MAX_ EXP DBL_MIN DBL_MIN_ 10_ EXP DBL_MIN_ EXP DECIMAL_DIG defaultdefaultdefineddifftimedivdiv_tdodoubledoubleEDOMEOFERANGEEXIT_FAILURE EXIT_SUCCESS elseenumerrnoexitexpexternFILE *FILENAME_MAX FLT_DECIMAL_ DIG FLT_DIG FLT_EPSILON FLT_MANT_ DIG FLT_MAX FLT_MAX_ 10_ EXP FLT_MAX_ EXP FLT_MIN FLT_MIN_ 10_ EXP FLT_MIN_ EXP FLT_RADIX FLT_ROUNDS FOPEN_MAX fabsfclosefeofferrorfflushfgetcfgetposfgetsfloatfloatfloorfmodfopenforfpos_tfprintffputcfputsfreadfreefreopenfrexpfscanffseekfsetposftellfwritegetcgetchargetenvgetsgmtimegotoHUGE_VAL INT_MAX INT_MIN ifintintisalnumisalphaiscntrlisdigitisgraphislowerisprintispunctisspaceisupperisxdigitjmp_buf L_tmpnam LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME LDBL_DECIMAL_ DIG LDBL_DIG LDBL_EPSILON LDBL_MANT_ DIG LDBL_MAX LDBL_MAX_ 10_ EXP LDBL_MAX_ EXP LDBL_MIN LDBL_MIN_ 10_ EXP LDBL_MIN_ EXP LONG_MAX LONG_MIN labsldexplocaleconvlocaltimeloglonglonglong doublelongjmpMB_CUR_ MAX MB_LEN_ MAX mainmallocmblenmbstowcsmbtowcmemchrmemcmpmemcpymemmovememsetmktimemodfNDEBUGNULLoffsetofperrorpowprintfptrdiff_tputcputcharputsqsortRAND_MAX raiserandreallocregisterremoverenamereturnrewindSCHAR_MAX SCHAR_MIN SEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIG_DFL SIG_ERR SIG_IGN SIGABRTSIGFPESIGILLSIGINTSIGSEGVSIGTERMscanfsetbufsetjmpsetlocalesetvbufshortshortsig_atomic_t signalsignedsigned charsinsinhsize_tsizeofsprintfsqrtsrandsscanfstaticstaticstaticstaticstderrstdinstdoutstrcatstrchrstrcmpstrcollstrcpystrcspnstrerrorstrftimestrlenstrncatstrncmpstrncpystrpbrkstrrchrstrspnstrstrstrtodstrtokstrtolstrtoulstructstruct lconvstruct tmstrxfrmswitchsystemTMP_MAX tantanhtimetime_ttmpfiletmpnamtolowertouppertypedefUCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX ungetcunionunsignedunsignedunsigned charunsigned longunsigned shortva_arg va_end va_list va_start vfprintfvoidvoidvoidvoidvoid *volatilevprintfvsprintfwctombwhile