Spec-Zone.ru › C

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

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

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

_Pragma (C99)

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

asm
fortran

Ссылки

  • Стандарт 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 Ключевые слова (с. 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++

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

Spec-Zone.ru

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