Namespaces
Variants

C keywords

From cppreference.net
< c

Это список зарезервированных ключевых слов в C. Поскольку они используются языком, эти ключевые слова недоступны для переопределения. В качестве исключения, они не считаются зарезервированными в attribute-token s . (since 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) (устарело в C23)
_Alignof (C11) (устарело в C23)
_Atomic (C11)
_BitInt (C23)
_Bool (C99) (устарело в C23)
_Complex (C99)
_Decimal128 (C23)
_Decimal32 (C23)
_Decimal64 (C23)
_Generic (C11)
_Imaginary (C99)
_Noreturn (C11) (устарело в C23)
_Static_assert (C11) (устарело в C23)
_Thread_local (C11) (устарело в C23)

Наиболее распространённые ключевые слова, начинающиеся с подчёркивания, обычно используются через свои удобные макросы:

Ключевое слово Используется как Определено в
_Alignas (C11) (устарело в C23) alignas (удалено в C23) stdalign.h
_Alignof (C11) (устарело в C23) alignof (удалено в C23) stdalign.h
_Atomic (C11) atomic_bool, atomic_int, ... stdatomic.h
_BitInt (C23) (нет макроса)
_Bool (C99) (устарело в C23) bool (удалено в C23) stdbool.h
_Complex (C99) complex complex.h
_Decimal128 (C23) (нет макроса)
_Decimal32 (C23) (нет макроса)
_Decimal64 (C23) (нет макроса)
_Generic (C11) (нет макроса)
_Imaginary (C99) imaginary complex.h
_Noreturn (C11) (устарело в C23) noreturn stdnoreturn.h
_Static_assert (C11) (устарело в C23) static_assert (удалено в C23) assert.h
_Thread_local (C11) (устарело в C23) thread_local (удалено в C23) threads.h

Некоторые ключевые слова устарели и сохранены как альтернативные варианты написания для целей совместимости. Они могут использоваться везде, где может применяться ключевое слово.

Ключевое слово Альтернативное написание
alignas (C23) _Alignas (C11) (устарело в C23)
alignof (C23) _Alignof (C11) (устарело в C23)
bool (C23) _Bool (C99) (устарело в C23)
static_assert (C23) _Static_assert (C11) (устарело в C23)
thread_local (C23) _Thread_local (C11) (устарело в C23)

Не определено, реализовано ли любое из написаний этих ключевых слов, их альтернативных форм, или true и false в качестве предопределённого макроса.

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

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

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

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)

**Примечание:** В данном случае весь текст внутри тегов ` ` содержит C++ специфические термины (директивы препроцессора), которые согласно инструкциям не подлежат переводу. Весь остальной текст в документе состоит из HTML тегов и атрибутов, которые также не переводятся. Поэтому перевод не требуется.

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

_Pragma (C99)

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

asm
fortran

**Примечание:** В данном случае весь текст, который требовалось перевести, находится внутри тегов ` ` и ` `, которые согласно инструкциям не подлежат переводу. Поэтому перевод всей HTML-структуры идентичен исходному коду.

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
  • 6.4.1 Ключевые слова (стр: 53)
  • J.5.9 Ключевое слово fortran (стр: 601)
  • J.5.10 Ключевое слово asm (стр: 601)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 6.4.1 Keywords (стр: 42-43)
  • J.5.9 The fortran keyword (стр: 422)
  • J.5.10 The asm keyword (стр: 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++ для ключевых слов