You can choose almost any name matching identifier for your own types, functions, macros and objects, but many are already taken (see the index of reserved names below). In addition, many names are reserved for use by the implementation or future standards:
-
Any function called
cerf,cerf,cexp2,cexpm1,clog10,clog1p,clog2,clgammaandctgamma, optionally with suffixesforl, may eventually appear in<complex.h>, probably as a complex dual oferf,erfc,exp2,expm1,log10,log1p,log2,lgammaortgamma. -
Any function beginning with
isand a lower-case letter may eventually appear in<ctype.h>probably as a character classifier, likeisalpha. -
Any function beginning with
toand a lower-case letter may eventually appear in<ctype.h>probably as a character transformation, liketoupper. -
Any function beginning with
iswand a lower-case letter may eventually appear in<wctype.h>probably as a character classifier, likeiswalpha. -
Any function beginning with
towand a lower-case letter may eventually appear in<wctype.h>probably as a character transformation, liketowupper. -
Any macro beginning with
Eand an upper-case letter may eventually appear in<errno.h>as an error code, likeEDOM. -
Any macro beginning with
FE_and an upper-case letter may eventually appear in<fenv.h>probably as a floating-point exception type, likeFE_, or as a rounding mode, likeDIVBYZERO FE_.DOWNWARD -
Any macro beginning with
PRIorPRIand an upper-case letter orXmay eventually appear in<inttypes.h>probably as a format specifier forprintforscanf. -
Any macro beginning with
LC_and an upper-case letter may eventually appear in<locale.h>as a locale category, likeLC_.CTYPE -
Any macro beginning with
SIGand an upper-case letter may eventually appear in<signal.h>as a signal type, likeSIGINT. -
Any macro beginning with
SIG_and an upper-case letter may eventually appear in<signal.h>as a valid second argument tosignal, likeSIG_.ERR -
Any macro beginning with
ATOMIC_and an upper-case letter may eventually appear in<stdatomic.h>. -
Any type beginning with
atomic_ormemory_and a lower-case letter may eventually appear in<stdatomic.h>. -
Any enumeration constant beginning with
memory_order_and a lower-case letter may eventually appear inmemory_.order -
Any type beginning with
int_oruint_and ending with_tmay eventually appear in<stdint.h>, probably as a new alias for an integer type. -
Any macro beginning with
INT_orUINT_and ending with_MAX,_MINor_Cmay eventually appear in<stdint.h>. -
Any function beginning with
strand a lower-case letter may eventually appear in<string.h>or<stdlib.h>. -
Any function beginning with
memand a lower-case letter may eventually appear in<string.h>. -
Any function beginning with
wcsand a lower-case letter may eventually appear in<string.h>or<wchar.h>. -
Any macro beginning with
TIME_and an upper-case letter may eventually appear in<time.h>. -
A name beginning with
cnd_,mtx_,thrd_ortss_and an upper-case letter may eventually appear in<threads.h>.
More to add.
__alignas_is_ defined __alignof_is_ defined __bool_true_ false_ are_ defined __DATE____FILE____func____LINE____STDC____STDC_ANALYZABLE__ __STDC_HOSTED__ __STDC_IEC_ 559__ __STDC_IEC_ 559_ COMPLEX__ __STDC_ISO_ 10646__ __STDC_LIB_ EXT1__ __STDC_MB_ MIGHT_ NEQ_ WC__ __STDC_NO_ ATOMICS__ __STDC_NO_ COMPLEX__ __STDC_NO_ THREADS__ __STDC_NO_ VLA__ __STDC_UTF_ 16__ __STDC_UTF_ 32__ __STDC_VERSION__ __STDC_WANT_ LIB_ EXT1__ __TIME____VA_ARGS__ _Alignas_Alignof_Atomic_Bool_Complex_Complex_I_Exit_Generic_Imaginary_Imaginary_I_IOFBF_IOLBF_IONBF_Noreturn_Pragma_Static_assert _Thread_local ATOMIC_BOOL_ LOCK_ FREE ATOMIC_CHAR16_ T_LOCK_ FREE ATOMIC_CHAR32_ T_LOCK_ FREE ATOMIC_CHAR_ LOCK_ FREE ATOMIC_FLAG_ INIT ATOMIC_INT_ LOCK_ FREE ATOMIC_LLONG_ LOCK_ FREE ATOMIC_LONG_ LOCK_ FREE ATOMIC_POINTER_ LOCK_ FREE ATOMIC_SHORT_ LOCK_ FREE ATOMIC_VAR_ INIT ATOMIC_WCHAR_ T_LOCK_ FREE abortabort_handler_s absacosacosfacoshacoshfacoshlacoslalignasaligned_alloc alignofandand_eqasctimeasctime_sasinasinfasinhasinhfasinhlasinlassertat_quick_ exit atanatan2atan2fatan2latanfatanhatanhfatanhlatanlatexitatofatoiatolatollatomicatomic_bool atomic_char atomic_char16_t atomic_char32_t atomic_compare_ exchange_ strong atomic_compare_ exchange_ strong_ explicit atomic_compare_ exchange_ weak atomic_compare_ exchange_ weak_ explicit atomic_exchange atomic_exchange_ explicit atomic_fetch_ add atomic_fetch_ add_ explicit atomic_fetch_ and atomic_fetch_ and_ explicit atomic_fetch_or atomic_fetch_ or_ explicit atomic_fetch_ sub atomic_fetch_ sub_ explicit atomic_fetch_ xor atomic_fetch_ xor_ explicit atomic_flag atomic_flag_ clear atomic_flag_ clear_ explicit atomic_flag_ test_ and_ set atomic_flag_ test_ and_ set_ explicit atomic_init atomic_int atomic_int_ fast16_t atomic_int_ fast32_t atomic_int_ fast64_t atomic_int_ fast8_t atomic_int_ least16_t atomic_int_ least32_t atomic_int_ least64_t atomic_int_ least8_t atomic_intmax_t atomic_intptr_t atomic_is_ lock_ free atomic_llong atomic_load atomic_load_ explicit atomic_long atomic_ptrdiff_t atomic_schar atomic_short atomic_signal_ fence atomic_size_t atomic_store atomic_store_ explicit atomic_thread_ fence atomic_uchar atomic_uint atomic_uint_ fast16_t atomic_uint_ fast32_t atomic_uint_ fast64_t atomic_uint_ fast8_t atomic_uint_ least16_t atomic_uint_ least32_t atomic_uint_ least64_t atomic_uint_ least8_t atomic_uintmax_t atomic_uintptr_t atomic_ullong atomic_ulong atomic_ushort atomic_wchar_t autoBUFSIZbitandbitorboolbreakbsearchbsearch_sbtowcCHAR_BIT CHAR_MAX CHAR_MIN CLOCKS_PER_ SEC CMPLXCMPLXFCMPLXLCX_LIMITED_ RANGE c16rtombc32rtombcabscabsfcabslcacoscacosfcacoshcacoshfcacoshlcacoslcall_once calloccargcargfcarglcasecasincasinfcasinhcasinhfcasinhlcasinlcatancatanfcatanhcatanhfcatanhlcatanlcbrtcbrtfcbrtlccosccosfccoshccoshfccoshlccoslceilceilfceillcexpcexpfcexplcharchar16_tchar32_tcimagcimagfcimaglclearerrclockclock_tclogclogfcloglcnd_broadcast cnd_destroy cnd_init cnd_signal cnd_tcnd_timedwait cnd_wait complcomplexconjconjfconjlconstconstraint_handler_t continuecopysigncopysignfcopysignlcoscosfcoshcoshfcoshlcoslcpowcpowfcpowlcprojcprojfcprojlcrealcrealfcreallcsincsinfcsinhcsinhfcsinhlcsinlcsqrtcsqrtfcsqrtlctanctanfctanhctanhfctanhlctanlctimectime_sDBL_DECIMAL_ DIG DBL_DIG DBL_EPSILON DBL_HAS_ SUBNORM DBL_MANT_ DIG DBL_MAX DBL_MAX_ 10_ EXP DBL_MAX_ EXP DBL_MIN DBL_MIN_ 10_ EXP DBL_MIN_ EXP DBL_TRUE_ MIN DECIMAL_DIG defaultdefineddifftimedivdiv_tdodoubledouble_tEDOMEILSEQEOFERANGEEXIT_FAILURE EXIT_SUCCESS elseenumerferfcerfcferfclerfferflerrnoerrno_texitexpexp2exp2fexp2lexpfexplexpm1expm1fexpm1lexternFE_ALL_ EXCEPT FE_DFL_ ENV FE_DIVBYZERO FE_DOWNWARD FE_INEXACT FE_INVALID FE_OVERFLOW FE_TONEAREST FE_TOWARDZERO FE_UNDERFLOW FE_UPWARD FENV_ACCESS FILENAME_MAX FLT_DECIMAL_ DIG FLT_DIG FLT_EPSILON FLT_EVAL_ METHOD FLT_HAS_ SUBNORM 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 FLT_TRUE_ MIN FOPEN_MAX FP_CONTRACT FP_FAST_ FMA FP_FAST_ FMAF FP_FAST_ FMAL FP_ILOGB0 FP_ILOGBNAN FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO fabsfabsffabslfalsefclosefdimfdimffdimlfeclearexceptfegetenvfegetexceptflagfegetroundfeholdexceptfenv_tfeofferaiseexceptferrorfesetenvfesetexceptflagfesetroundfetestexceptfeupdateenvfexcept_tfflushfgetcfgetposfgetsfgetwcfgetwsfloatfloat_tfloorfloorffloorlfmafmaffmalfmaxfmaxffmaxlfminfminffminlfmodfmodffmodlfopenfopen_sforfpclassifyfpos_tfprintffprintf_sfputcfputsfputwcfputwsfreadfreefreopenfreopen_sfrexpfrexpffrexplfscanffscanf_sfseekfsetposftellfwidefwprintffwprintf_sfwritefwscanffwscanf_sgetcgetchargetenvgetenv_sgetsgets_sgetwcgetwchargmtimegmtime_sgotoHUGE_VAL HUGE_VALF HUGE_VALL hypothypotfhypotlIINFINITYINT16_CINT16_MAX INT16_MIN INT32_CINT32_MAX INT32_MIN INT64_CINT64_MAX INT64_MIN INT8_CINT8_MAX INT8_MIN INT_FAST16_ MAX INT_FAST16_ MIN INT_FAST32_ MAX INT_FAST32_ MIN INT_FAST64_ MAX INT_FAST64_ MIN INT_FAST8_ MAX INT_FAST8_ MIN INT_LEAST16_ MAX INT_LEAST16_ MIN INT_LEAST32_ MAX INT_LEAST32_ MIN INT_LEAST64_ MAX INT_LEAST64_ MIN INT_LEAST8_ MAX INT_LEAST8_ MIN INT_MAX INT_MIN INTMAX_CINTMAX_MAX INTMAX_MIN INTPTR_MAX INTPTR_MIN ifignore_handler_s ilogbilogbfilogblimaginaryimaxabsimaxdivimaxdiv_tinlineintint16_tint32_tint64_tint8_tint_fast16_t int_fast32_t int_fast64_t int_fast8_t int_least16_t int_least32_t int_least64_t int_least8_t intmax_tintptr_tisalnumisalphaisblankiscntrlisdigitisfiniteisgraphisgreaterisgreaterequalisinfislessislessequalislessgreaterislowerisnanisnormalisprintispunctisspaceisunorderedisupperiswalnumiswalphaiswblankiswcntrliswctypeiswdigitiswgraphiswloweriswprintiswpunctiswspaceiswupperiswxdigitisxdigitjmp_buf kill_dependency L_tmpnam L_tmpnam_s LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME LDBL_DECIMAL_ DIG LDBL_DIG LDBL_EPSILON LDBL_HAS_ SUBNORM LDBL_MANT_ DIG LDBL_MAX LDBL_MAX_ 10_ EXP LDBL_MAX_ EXP LDBL_MIN LDBL_MIN_ 10_ EXP LDBL_MIN_ EXP LDBL_TRUE_ MIN LLONG_MAX LLONG_MIN LONG_MAX LONG_MIN labsldexpldexpfldexplldivldiv_tlgammalgammaflgammalllabslldivlldiv_tllrintllrintfllrintlllroundllroundfllroundllocaleconvlocaltimelocaltime_sloglog10log10flog10llog1plog1pflog1pllog2log2flog2llogblogbflogbllogflogllonglongjmplrintlrintflrintllroundlroundflroundlMATH_ERREXCEPT MATH_ERRNO MB_CUR_ MAX MB_LEN_ MAX mainmallocmath_errhandling max_align_t mblenmbrlenmbrtoc16mbrtoc32mbrtowcmbsinitmbsrtowcsmbsrtowcs_smbstate_tmbstowcsmbstowcs_smbtowcmemchrmemcmpmemcpymemcpy_smemmovememmove_smemory_order memory_order_ acq_ rel memory_order_ acquire memory_order_ consume memory_order_ relaxed memory_order_ release memory_order_ seq_ cst memsetmktimemodfmodffmodflmtx_destroy mtx_init mtx_lock mtx_plain mtx_recursive mtx_tmtx_timed mtx_timedlock mtx_trylock mtx_unlock NANNDEBUGNULLnannanfnanlnearbyintnearbyintfnearbyintlnextafternextafterfnextafterlnexttowardnexttowardfnexttowardlnoreturnnotnot_eqONCE_FLAG_ INIT offsetofonce_flag oror_eqPRId16PRId32PRId64PRId8PRIdFAST16PRIdFAST32PRIdFAST64PRIdFAST8PRIdLEAST16PRIdLEAST32PRIdLEAST64PRIdLEAST8PRIdMAXPRIdPTRPRIi16PRIi32PRIi64PRIi8PRIiFAST16PRIiFAST32PRIiFAST64PRIiFAST8PRIiLEAST16PRIiLEAST32PRIiLEAST64PRIiLEAST8PRIiMAXPRIiPTRPRIo16PRIo32PRIo64PRIo8PRIoFAST16PRIoFAST32PRIoFAST64PRIoFAST8PRIoLEAST16PRIoLEAST32PRIoLEAST64PRIoLEAST8PRIoMAXPRIoPTRPRIu16PRIu32PRIu64PRIu8PRIuFAST16PRIuFAST32PRIuFAST64PRIuFAST8PRIuLEAST16PRIuLEAST32PRIuLEAST64PRIuLEAST8PRIuMAXPRIuPTRPRIX16PRIX32PRIX64PRIX8PRIXFAST16PRIXFAST32PRIXFAST64PRIXFAST8PRIXLEAST16PRIXLEAST32PRIXLEAST64PRIXLEAST8PRIXMAXPRIXPTRPRIx16PRIx32PRIx64PRIx8PRIxFAST16PRIxFAST32PRIxFAST64PRIxFAST8PRIxLEAST16PRIxLEAST32PRIxLEAST64PRIxLEAST8PRIxMAXPRIxPTRPTRDIFF_MAX PTRDIFF_MIN perrorpowpowfpowlprintfprintf_sptrdiff_tputcputcharputsputwcputwcharqsortqsort_squick_exit RAND_MAX RSIZE_MAX raiserandreallocregisterremainderremainderfremainderlremoveremquoremquofremquolrenamerestrictreturnrewindrintrintfrintlroundroundfroundlrsize_tSCHAR_MAX SCHAR_MIN SCNd16SCNd32SCNd64SCNd8SCNdFAST16SCNdFAST32SCNdFAST64SCNdFAST8SCNdLEAST16SCNdLEAST32SCNdLEAST64SCNdLEAST8SCNdMAXSCNdPTRSCNi16SCNi32SCNi64SCNi8SCNiFAST16SCNiFAST32SCNiFAST64SCNiFAST8SCNiLEAST16SCNiLEAST32SCNiLEAST64SCNiLEAST8SCNiMAXSCNiPTRSCNo16SCNo32SCNo64SCNo8SCNoFAST16SCNoFAST32SCNoFAST64SCNoFAST8SCNoLEAST16SCNoLEAST32SCNoLEAST64SCNoLEAST8SCNoMAXSCNoPTRSCNu16SCNu32SCNu64SCNu8SCNuFAST16SCNuFAST32SCNuFAST64SCNuFAST8SCNuLEAST16SCNuLEAST32SCNuLEAST64SCNuLEAST8SCNuMAXSCNuPTRSCNx16SCNx32SCNx64SCNx8SCNxFAST16SCNxFAST32SCNxFAST64SCNxFAST8SCNxLEAST16SCNxLEAST32SCNxLEAST64SCNxLEAST8SCNxMAXSCNxPTRSEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIG_ATOMIC_ MAX SIG_ATOMIC_ MIN SIG_DFL SIG_ERR SIG_IGN SIGABRTSIGFPESIGILLSIGINTSIGSEGVSIGTERMSIZE_MAX scalblnscalblnfscalblnlscalbnscalbnfscalbnlscanfscanf_sset_constraint_ handler_s setbufsetjmpsetlocalesetvbufshortsig_atomic_t signalsignbitsignedsinsinfsinhsinhfsinhlsinlsize_tsizeofsnprintfsnprintf_ssnwprintf_ssprintfsprintf_ssqrtsqrtfsqrtlsrandsscanfsscanf_sstaticstatic_assert stderrstdinstdoutstrcatstrcat_sstrchrstrcmpstrcollstrcpystrcpy_sstrcspnstrerrorstrerror_sstrerrorlen_sstrftimestrlenstrncatstrncat_sstrncmpstrncpystrncpy_sstrnlen_sstrpbrkstrrchrstrspnstrstrstrtodstrtofstrtoimaxstrtokstrtok_sstrtolstrtoldstrtollstrtoulstrtoullstrtoumaxstructstrxfrmswitchswprintfswprintf_sswscanfswscanf_ssystemTIME_UTC TMP_MAX TMP_MAX_S TSS_DTOR_ ITERATIONS tantanftanhtanhftanhltanltgammatgammaftgammalthrd_busy thrd_create thrd_current thrd_detach thrd_equal thrd_error thrd_exit thrd_join thrd_nomem thrd_sleep thrd_start_t thrd_success thrd_tthrd_timedout thrd_yield thread_local timetime_ttimespec_get tmpfiletmpfile_stmpnamtmpnam_stolowertouppertowctranstowlowertowuppertruetrunctruncftruncltss_create tss_delete tss_dtor_t tss_get tss_set tss_ttypedefUCHAR_MAX UINT16_CUINT16_MAX UINT32_CUINT32_MAX UINT64_CUINT64_MAX UINT8_CUINT8_MAX UINT_FAST16_ MAX UINT_FAST32_ MAX UINT_FAST64_ MAX UINT_FAST8_ MAX UINT_LEAST16_ MAX UINT_LEAST32_ MAX UINT_LEAST64_ MAX UINT_LEAST8_ MAX UINT_MAX UINTMAX_CUINTMAX_MAX UINTPTR_MAX ULLONG_MAX ULONG_MAX USHRT_MAX uint16_tuint32_tuint64_tuint8_tuint_fast16_t uint_fast32_t uint_fast64_t uint_fast8_t uint_least16_t uint_least32_t uint_least64_t uint_least8_t uintmax_tuintptr_tungetcungetwcunionunsignedva_arg va_copy va_end va_list va_start vfprintfvfprintf_svfscanfvfscanf_svfwprintfvfwprintf_svfwscanfvfwscanf_svoidvolatilevprintfvprintf_svscanfvscanf_svsnprintfvsnprintf_svsnwprintf_svsprintfvsprintf_svsscanfvsscanf_svswprintfvswprintf_svswscanfvswscanf_svwprintfvwprintf_svwscanfvwscanf_sWCHAR_MAX WCHAR_MIN WEOFWINT_MAX WINT_MIN wchar_twcrtombwcrtomb_swcscatwcscat_swcschrwcscmpwcscollwcscpywcscpy_swcscspnwcsftimewcslenwcsncatwcsncat_swcsncmpwcsncpywcsncpy_swcsnlen_swcspbrkwcsrchrwcsrtombswcsrtombs_swcsspnwcsstrwcstodwcstofwcstoimaxwcstokwcstok_swcstolwcstoldwcstollwcstombswcstombs_swcstoulwcstoullwcstoumaxwcsxfrmwctobwctombwctomb_swctranswctrans_twctypewctype_twhilewint_twmemchrwmemcmpwmemcpywmemcpy_swmemmovewmemmove_swmemsetwprintfwprintf_swscanfwscanf_sxorxor_eq