C keywords
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.
auto
|
float
|
signed
|
_Alignas (since C11)
|
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:
if |
ifdef |
include |
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 classified as extensions and conditionally-supported:
asm |
References
C11 standard (ISO/IEC 9899:2011):
- 6.4.1 Keywords (p: 58-59)
- J.5 Common extensions (p: 579-581)
C99 standard (ISO/IEC 9899:1999):
- 6.4.1 Keywords (p: 50)
- J.5 Common extensions (p: 511-513)
C89/C90 standard (ISO/IEC 9899:1990):
- 3.1.1 Keywords
- G.5 Common extensions
See also
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/keyword