# C 关键词

< c

这是 C 中保留的关键词列表。因为语言使用这些关键词，故不可重定义它们。

`auto` `break` `case` `char` `const` `continue` `default` `do` `double` `else` `enum` `extern` | `float` `for` `goto` `if` `inline` (C99 起) `int` `long` `register` `restrict` (C99 起) `return` `short` | `signed` `sizeof` `static` `struct` `switch` `typedef` `union` `unsigned` `void` `volatile` `while` | `_Alignas` (C11 起) `_Alignof` (C11 起) `_Atomic` (C11 起) `_Bool` (C99 起) `_Complex` (C99 起) `_Decimal128` (C23 起) `_Decimal32` (C23 起) `_Decimal64` (C23 起) `_Generic` (C11 起) `_Imaginary` (C99 起) `_Noreturn` (C11 起) `_Static_assert` (C11 起) `_Thread_local` (C11 起)

最常见的以下划线开头的关键词通常通过其便利宏来使用：

关键词 | 用作 | 定义于
`_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 起) | （无宏） |
`_Decimal32` (C23 起) | （无宏） |
`_Decimal64` (C23 起) | （无宏） |
`_Generic` (C11 起) | （无宏） |
`_Imaginary` (C99 起) | `imaginary` | `complex.h`
`_Noreturn` (C11 起) | `noreturn` | `stdnoreturn.h`
`_Static_assert` (C11 起) | `static_assert` | `assert.h`
`_Thread_local` (C11 起) | `thread_local` | `threads.h`

而且，每个以双下划线 __ 或单下划线后随大写字母为首的名称是受保留的：细节参阅标识符。

注意合字符 `<%` 、 `%>` 、 `<:` 、 `:>` 、 `%:` 以及 `%:%:` 提供表示标准记号的替用方式。

下列记号在用于预处理器指令语境之内时，为预处理器所识别：

`if` `elif` `else` `endif` | `ifdef` `ifndef` `define` `undef` | `include` `line` `error` `pragma` | `defined` `__has_c_attribute`(C23 起)

下列记号用于预处理器指令的语境之外时，为预处理器所识别：

`_Pragma`(C99 起)

下列的额外关键词被分类为扩展，而且为条件性支持：

`asm` `fortran`

### 引用

- C17 标准（ISO/IEC 9899:2018）：

  - 6.4.1 Keywords (p: 42-43)

  - J.5.9 The fortran keyword (p: 422)

  - J.5.10 The asm keyword (p: 422)

- C11 标准（ISO/IEC 9899:2011）：

  - 6.4.1 Keywords (p: 58-59)

  - J.5.9 The fortran keyword (p: 580)

  - J.5.10 The asm keyword (p: 580)

- C99 标准（ISO/IEC 9899:1999）：

  - 6.4.1 Keywords (p: 50)

  - J.5.9 The fortran keyword (p: 514)

  - J.5.10 The asm keyword (p: 514)

- C89/C90 标准（ISO/IEC 9899:1990）：

  - 3.1.1 Keywords

  - G.5.9 The fortran keyword

  - G.5.10 The asm keyword

### 参阅