Keywords are identifiers reserved by the language for special use. Although you can use them for preprocessor macro names, it is considered poor programming style. Only the exact spelling of keywords is reserved. For example, auto is reserved but AUTO is not.
auto break case char const continue default do |
double else enum extern float for goto if |
int long register return short signed sizeof static |
struct switch typedef union unsigned void volatile while |
Standard C at the C99 level also reserves the following keywords:
_Bool _Complex |
_Imaginary1 inline2 restrict3 |
The C++ language also reserves the following keywords:
asm bool catch class const_cast delete dynamic_cast explicit |
export false friend inline mutable namespace new operator |
private protected public reinterpret_cast static_cast template this throw |
true try typeid typename using virtual wchar_t |
In addition to standard language keywords, XL C/C++ reserves the following keywords for use in language extensions:
__restrict __restrict__ __attribute__ __attribute __signed__ __signed __volatile__ typeof __typeof__ __align __alignof __alignof__ |
__real__ __imag__ __complex__ __const__ __inline__1 __extension__ __label__ __asm __asm__ asm |
pixel2 __pixel2 vector2 __vector2 bool (C only)2 |
XL C++ reserves the following keywords as language extensions for compatibility with C99.
_Complex |
_Imaginary1 restrict |
The keyword _Imaginary is reserved for future extension of complex number functionality. For current complex number functionality, use _Complex; see Complex literals for details.