C keywords
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(since C11) | alignas | stdalign.h | 
| _Alignof(since C11) | alignof | stdalign.h | 
| _Atomic(since C11) | atomic_bool. atomic_int, ... | stdatomic.h | 
| _Bool(since C99) | bool | stdbool.h | 
| _Complex(since C99) | complex | complex.h | 
| _Generic(since C11) | (no macro) | |
| _Imaginary(since C99) | imaginary | complex.h | 
| _Noreturn(since C11) | noreturn | stdnoreturn.h | 
| _Static_assert(since C11) | static_assert | assert.h | 
| _Thread_local(since 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:
| _Pragma(since C99) | 
The following additional keywords are conditionally-supported:
[edit] References
- C11 standard (ISO/IEC 9899:2011):
- 6.4.1 Keywords (p: 58-59)
 
- C99 standard (ISO/IEC 9899:1999):
- 6.4.1 Keywords (p: 50)
 
- C89/C90 standard (ISO/IEC 9899:1990):
- 3.1.1 Keywords
 
[edit] See also
| C++ documentation for C++ keywords | 


