Spec-Zone.ru › C

Ключевые слова языка C

Это список зарезервированных ключевых слов языка C. Поскольку они используются языком, эти ключевые слова недоступны для переопределения. Исключение составляют атрибуты в атрибутных обозначениях(с C23)

alignas (C23)
alignof (C23)
auto
bool (C23)
break
case
char
const
constexpr (C23)
continue
default
do
double
else
enum

extern
false (C23)
float
for
goto
if
inline (C99)
int
long
nullptr (C23)
register
restrict (C99)
return
short
signed

sizeof
static
static_assert (C23)
struct
switch
thread_local (C23)
true (C23)
typedef
typeof (C23)
typeof_unqual (C23)
union
unsigned
void
volatile
while

_Alignas (C11)
_Alignof (C11)
_Atomic (C11)
_BitInt (C23)
_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 (удалено в C23) stdalign.h
_Alignof (C11) alignof (удалено в C23) stdalign.h
_Atomic (C11) atomic_bool, atomic_int, ... stdatomic.h
_BitInt (C23) (нет макроса)
_Bool (C99) bool (удалено в C23) 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 (удалено в C23) assert.h
_Thread_local (C11) thread_local (удалено в C23) threads.h

Также зарезервировано любое имя, начинающееся с двойного нижнего подчеркивания __ или с нижнего подчеркивания _ и заглавной буквы: см. идентификатор для подробностей.

Обратите внимание, что диграфы <%, %>, <:, :>, %:, и %:%: предоставляют альтернативный способ представления стандартных токенов.

END_OF_DOCUMENT_MARKER ```

Следующие токены распознаются препроцессором препроцессором, когда они используются внутри контекста директивы препроцессора:

if
elif
else
endif

ifdef
ifndef
elifdef (C23)
elifndef (C23)
define
undef

include
embed (C23)
line
error
warning (C23)
pragma

defined
__has_include (C23)
__has_embed (C23)
__has_c_attribute (C23)

Следующие токены распознаются препроцессором, когда они используются вне контекста директивы препроцессора:

_Pragma (C99)

Следующие дополнительные ключевые слова классифицируются как расширения и условно поддерживаются:

asm
fortran

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2023):
    • 6.4.1 Ключевые слова (c: TBD)
    • J.5.9 Ключевое слово fortran (c: TBD)
    • J.5.10 Ключевое слово asm (c: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 6.4.1 Ключевые слова (c: 42-43)
    • J.5.9 Ключевое слово fortran (c: 422)
    • J.5.10 Ключевое слово asm (c: 422)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 6.4.1 Ключевые слова (c: 58-59)
    • J.5.9 Ключевое слово fortran (c: 580)
    • J.5.10 Ключевое слово asm (c: 580)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 6.4.1 Ключевые слова (c: 50)
    • J.5.9 Ключевое слово fortran (c: 514)
    • J.5.10 Ключевое слово asm (c: 514)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
    • 3.1.1 Ключевые слова
    • G.5.9 Ключевое слово fortran
    • G.5.10 Ключевое слово asm

См. также

Документация C++ для ключевых слов C++

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/keyword

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API