##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# C keywords

From cppreference.com
< c

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` `break` `case` `char` `const` `continue` `default` `do` `double` `else` `enum` `extern` | `float` `for` `goto` `if` `inline` (since C99) `int` `long` `register` `restrict` (since C99) `return` `short` | `signed` `sizeof` `static` `struct` `switch` `typedef` `union` `unsigned` `void` `volatile` `while` | `_Alignas` (since C11) `_Alignof` (since C11) `_Atomic` (since C11) `_Bool` (since C99) `_Complex` (since C99) `_Generic` (since C11) `_Imaginary` (since C99) `_Noreturn` (since C11) `_Static_assert` (since C11) `_Thread_local` (since C11)

Also, each name that contains a double underscore __ or begins with an underscore followed by an uppercase letter is always reserved to the implementation and should not be used as an identifier. Each name that begins with an underscore is reserved to the implementation for use as a name of a global entity; such names may be used as names of local variables, names of data members in a structure, etc.

Note that digraphs `<%`, `%>`, `<:`, `:>`, `%:`, and `%:%:` provide an alternative way to represent standard tokens.

### [edit] See also

C++ documentation for C++ keywords

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/keyword&oldid=71077"