close
Пространства имён
Варианты
Действия

Ключевые слова C

Материал из cppreference.com
< c
 
 
 
 

Это список зарезервированных ключевых слов C. Так как они используются самим языком, их невозможно переопределить.

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

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

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

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

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

Ссылки

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

См. также

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