This is a list of reserved keywords in C. Since they are used by the language, these keywords are not available for re-definition.
|
|
|
|
The most common keywords that begin with an underscore are generally used through their convenience macros:
keyword | used as | defined in |
_Alignas (C11) |
alignas |
stdalign.h |
_Alignof (C11) |
alignof |
stdalign.h |
_Atomic (C11) |
atomic_bool, atomic_int, ... |
stdatomic.h |
_Bool (C99) |
bool |
stdbool.h |
_Complex (C99) |
complex |
complex.h |
_Decimal128 (C23) | (no macro) | |
_Decimal32 (C23) | (no macro) | |
_Decimal64 (C23) | (no macro) | |
_Generic (C11) | (no macro) | |
_Imaginary (C99) |
imaginary |
complex.h |
_Noreturn (C11) |
noreturn |
stdnoreturn.h |
_Static_assert (C11) |
static_assert |
assert.h |
_Thread_local (C11) |
thread_local |
threads.h |
Also, each name that begins with a double underscore __ or an underscore followed by an uppercase letter is reserved: see identifier for details.
Note that digraphs <%
, %>
, <:
, :>
, %:
, and %:%:
provide an alternative way to represent standard tokens.
The following tokens are recognized by the preprocessor when they are used within the context of a preprocessor directive:
|
The following tokens are recognized by the preprocessor when they are used outside the context of a preprocessor directive:
|
The following additional keywords are classified as extensions and conditionally-supported:
C++ documentation for C++ keywords |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/keyword