C ключевые слова: часть 4 – токены и ключевые слова

Ключевые слова в C | Microsoft Learn


  • Статья

  • Чтение занимает 2 мин

Ключевыми словами называются слова, которые имеют особое значение для компилятора C. На 7 и 8 этапах трансляции идентификатор не может иметь такое же написание и регистр записи, что и ключевое слово C. Дополнительные сведения см. в разделе Этапы преобразованияСправочника по препроцессору. Дополнительные сведения об идентификаторах см. в этом разделе.

Ключевые слова стандартного языка C

В языке C используются следующие ключевые слова:

auto
break
case
char
const
continue
default
do
double
else
enum

extern
float
for
goto
if
inline1, a
int
long
register
restrict1, a
return

short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile

while
_Alignas2, a
_Alignof2, a
_Atomic2, b
_Bool1, a
_Complex1, b
_Generic2, a
_Imaginary1, b
_Noreturn2, a
_Static_assert2, a
_Thread_local2, b

1 Ключевые слова, представленные в стандарте ISO C99.

2 Ключевые слова, представленные в стандарте ISO C11.

a Начиная с Visual Studio 2019 версии 16.8 эти ключевые слова поддерживаются в коде, скомпилированном как C, если указаны параметр компилятора /std:c11 или /std:c17.

b Начиная с Visual Studio 2019 версии 16.8 эти ключевые слова распознаются, но не поддерживаются компилятором в коде, скомпилированном как C, если указаны параметр компилятора /std:c11 или /std:c17.

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

Ключевые слова C для систем Microsoft

Стандарты ANSI и ISO C позволяют зарезервировать идентификаторы, начинающиеся с двух символов подчеркивания, для реализаций компилятора. Поэтому в системах Microsoft действует соглашение, что используемые в них ключевые слова начинаются с двух символов подчеркивания. Эти слова невозможно использовать как имена идентификаторов. Описание правил именования идентификаторов, включая использование двойных знаков подчеркивания, см. в статье об идентификаторах.

Компилятор Microsoft C распознает следующие ключевые слова и особые идентификаторы.

__asm5
__based3, 5
__cdecl5
__declspec5
__except5
__fastcall
__finally5

__inline5
__int165
__int325
__int645
__int85
__leave5
__restrict

__stdcall5
__try5
dllexport4
dllimport4
naked4
static_assert6
thread4

3 Ключевое слово __based имеет ограниченное применение: в компиляциях для 32- и 64-разрядных платформ.

4 Если эти ключевые слова используются с ключевым словом __declspec, они являются особыми идентификаторами. В других контекстах они могут использоваться без ограничений.

5 Для совместимости с предыдущими версиями эти ключевые слова доступны как с двумя символами подчеркивания в начале, так и с одним при включении расширений Microsoft.

6 Если файл <assert.h> не включен, компилятор Microsoft Visual C сопоставляет static_assert с ключевым словом C11 _Static_assert.

Расширения Microsoft по умолчанию включены. Чтобы помочь в создании переносимого кода, расширения Microsoft можно отключить, указав во время компиляции параметр /Za (Отключить расширения языка) . При этом некоторые ключевые слова для систем Microsoft будут отключены.

Когда расширения Microsoft включены, в программах можно использовать перечисленные выше ключевые слова. Чтобы соответствовать стандарту языка, большинству этих ключевых слов предшествует двойное подчеркивание. Четыре исключения, dllexport, dllimport, naked и thread, используются только с ключевым словом __declspec и поэтому не требуют двойного знака подчеркивания. Для всех остальных ключевых слов поддерживаются версии с одним символом подчеркивания. Это сделано для обеспечения обратной совместимости.

См. также

Элементы языка C

Ключевые слова (C++) | Microsoft Learn


  • Статья

  • Чтение занимает 3 мин

Ключевые слова — это предварительно определенные зарезервированные идентификаторы, имеющие специальные значения. Их нельзя использовать в качестве идентификаторов в программе. Для Microsoft C++ зарезервированы следующие ключевые слова. Имена с символами подчеркивания и именами, указанными для C++/CX и C++/CLI, являются расширениями Майкрософт.

Стандартные ключевые слова C++

alignas
alignof
andB
and_eqB
asma
auto
bitandB
bitorB
bool
break
case
catch
char
char8_tc
char16_t
char32_t
class
complB
conceptc
const
const_cast
constevalc
constexpr

constinitc
continue
co_awaitc
co_returnc
co_yieldc
decltype
default
delete
do
double
dynamic_cast
else
enum
explicit
exportc
extern
false
float
for
friend
goto
if
inline

int
long
mutable
namespace
new
noexcept
notB
not_eqB
nullptr
operator
orB
or_eqB
private
protected
public
register
reinterpret_cast
requiresc
return
short
signed
sizeof
static
static_assert

static_cast
struct
switch
template
this
thread_local
throw
true
try
typedef
typeid
typename
union
unsigned
using Декларации
using Директива
virtual
void
volatile
wchar_t
while
xorB
xor_eqB

Ключевое слово, определенное корпорацией __asm Майкрософт, заменяет синтаксис C++ asm . asm зарезервировано для совместимости с другими реализациями C++, но оно не реализовано. Используется __asm для встроенной сборки в целевых объектах x86. Microsoft C++ не поддерживает встроенную сборку для других целевых объектов.

b Синонимы расширенных операторов являются ключевыми словами при /permissive-указании или/Za (отключение расширений языка). Они не являются ключевыми словами при включении расширений Майкрософт.

c Поддерживается при /std:c++20 указании или более поздней версии (например /std:c++latest, при указании).

Ключевые слова C++ для конкретной корпорации Майкрософт

В C++идентификаторы, содержащие два последовательных символа подчеркивания, зарезервированы для реализаций компилятора. Соглашение Майкрософт предшествует ключевым словам, зависящим от Майкрософт, с двойным подчеркиванием. Эти слова невозможно использовать как имена идентификаторов.

Расширения Microsoft по умолчанию включены. Чтобы убедиться, что ваши программы полностью переносимы, можно отключить расширения Майкрософт, указав /permissive- параметр или /Za (отключить расширения языка) во время компиляции . Эти параметры отключают некоторые ключевые слова, относящиеся к Корпорации Майкрософт.

Если расширения Microsoft включены, в программах можно использовать ключевые слова, специфические для систем Microsoft. Для соответствия ANSI эти ключевые слова предваряются двойным подчеркиванием. Для обратной совместимости поддерживаются версии с одним подчеркиванием многих ключевых слов с двойным подчеркиванием. Ключевое __cdecl слово доступно без начального подчеркивания.

Ключевое __asm слово заменяет синтаксис C++ asm . asm зарезервировано для совместимости с другими реализациями C++, но оно не реализовано. Используйте команду __asm.

Ключевое __based слово имеет ограниченное использование для 32-разрядных и 64-разрядных целевых компиляций.

__alignofE
__asmE
__assumeE
__basedE
__cdeclE
__declspecE
__event
__exceptE
__fastcallE
__finallyE
__forceinlineE

__hookD
__if_exists
__if_not_exists
__inlineE
__int16E
__int32E
__int64E
__int8E
__interface
__leaveE
__m128

__m128d
__m128i
__m64
__multiple_inheritanceE
__ptr32E
__ptr64E
__raise
__restrictE
__single_inheritanceE
__sptrE
__stdcallE

__super
__thiscall
__unalignedE
__unhookD
__uptrE
__uuidofE
__vectorcallE
__virtual_inheritanceE
__w64E
__wchar_t

Встроенная функция, используемая в обработке событий.

E Для обратной совместимости с предыдущими версиями эти ключевые слова доступны как с двумя ведущими символами подчеркивания, так и с одним символом подчеркивания при включении расширений Майкрософт (по умолчанию).

Ключевые слова Майкрософт в модификаторах __declspec

Эти идентификаторы являются расширенными атрибутами модификатора __declspec . Они считаются ключевыми словами в этом контексте.

align
allocate
allocator
appdomain
code_seg
deprecated

dllexport
dllimport
jitintrinsic
naked
noalias
noinline

noreturn
no_sanitize_address
nothrow
novtable
process
property

restrict
safebuffers
selectany
spectre
thread
uuid

Ключевые слова C++/CLI и C++/CX

__abstractF
__boxF
__delegateF
__gcF
__identifier
__nogcF
__noop
__pinF
__propertyF
__sealedF

__try_castF
__valueF
abstractГ
arrayГ
as_friend
delegateГ
enum class
enum struct
eventГ

finally
for each in
gcnewГ
genericГ
initonly
interface classГ
interface structГ
interior_ptrГ
literalГ

newГ
propertyГ
ref class
ref struct
safecast
sealedГ
typeid
value classГ
value structГ

F Применимо только к управляемые расширения для C++. В настоящее время использование этого синтаксиса не рекомендуется. Дополнительные сведения см. в статье Расширения компонентов для платформ среды выполнения.

g Применимо к C++/CLI.

См. также раздел

Лексические соглашения
Встроенные операторы C++, приоритет и ассоциативность

Ключевые слова и идентификаторы C

В этом руководстве вы узнаете о ключевых словах; зарезервированные слова в программировании на C, которые являются частью синтаксиса. Кроме того, вы узнаете об идентификаторах и о том, как их называть.

Набор символов

Набор символов — это набор алфавитов, букв и некоторых специальных символов, допустимых в языке C.

Алфавиты

Прописные буквы: A B C ...................................... X Y Z
Нижний регистр: a b c ...................................... x y z 

C принимает как строчные, так и прописные буквы в качестве переменных и функций.

Цифры

0 1 2 3 4 5 6 7 8 9 

Специальные символы

Специальные символы в программировании на C
, < > . _
( ) ; $ :
% [ 9 ! * / |
\ ~ +  

Пробел Символы

Пробел, новая строка, горизонтальная табуляция, возврат каретки и перевод страницы.


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

Ключевые слова — это предопределенные, зарезервированные слова, используемые в программировании, которые имеют особое значение для компилятора. Ключевые слова являются частью синтаксиса и не могут использоваться в качестве идентификатора. Например:

 инт деньги; 

Здесь int — ключевое слово, указывающее, что money — это переменная типа int (целое число).

Поскольку язык C чувствителен к регистру, все ключевые слова должны быть написаны строчными буквами. Вот список всех ключевых слов, разрешенных в ANSI C.

Ключевые слова C
авто двойной внутр. структура
перерыв еще длинный переключатель
Чемодан перечисление регистр определение типа
символ внешний возврат штуцер
продолжить для подписанный пустота
до если статический и
по умолчанию перейти к размер энергозависимый
константа поплавок короткий без знака

Все эти ключевые слова, их синтаксис и применение будут обсуждаться в соответствующих темах. Однако, если вы хотите получить краткий обзор этих ключевых слов, не идя дальше, посетите Список всех ключевых слов в программировании на C.


C Идентификаторы

Идентификатор относится к имени, данному объектам, таким как переменные, функции, структуры и т. д.

Идентификаторы должны быть уникальными. Они создаются, чтобы дать объекту уникальное имя, позволяющее идентифицировать его во время выполнения программы. Например:

 инт деньги;
двойной счет Баланс; 

Здесь деньги и accountBalance являются идентификаторами.

Также помните, имена идентификаторов должны отличаться от ключевых слов. Вы не можете использовать int в качестве идентификатора, потому что int  – это ключевое слово.


Правила наименования идентификаторов

  1. Действительный идентификатор может содержать буквы (как прописные, так и строчные), цифры и символы подчеркивания.
  2. Первая буква идентификатора должна быть либо буквой, либо знаком подчеркивания.
  3. Вы не можете использовать в качестве идентификаторов такие ключевые слова, как int , while и т.д.
  4. Не существует правила относительно длины идентификатора. Однако вы можете столкнуться с проблемами в некоторых компиляторах, если идентификатор длиннее 31 символа.

Вы можете выбрать любое имя в качестве идентификатора, если будете следовать приведенному выше правилу, однако давайте осмысленные имена идентификаторам, которые имеют смысл.

Содержание

C Ключевые слова | Microsoft Узнайте

Обратная связь

Редактировать

Твиттер

LinkedIn

Фейсбук

Эл. адрес

  • Статья
  • 2 минуты на чтение

Ключевые слова — это слова, которые имеют особое значение для компилятора C. На этапах перевода 7 и 8 идентификатор не может иметь то же написание и регистр, что и ключевое слово C. Для получения дополнительной информации см. этапы перевода в разделе Ссылка на препроцессор . Дополнительные сведения об идентификаторах см. в разделе Идентификаторы.

Standard C keywords

The C language uses the following keywords:

auto
break
case
char
const
continue
по умолчанию
до
двойной
еще
enum

extern
float
for
goto
if
inline 1, a
int
длинный
регистр
ограничить 1, a
вернуться

short
signed
sizeof
static
struct
switch
typedef
union
без знака
пусто
летучий

while
_Alignas 2, a
_Alignof 2, a
_Atomic 2, b
_Bool 1, a
_Complex 1, b
_Generic 2, a
_Imaginary 1, b
_Noreturn 2, a
_Static_assert 2, a
_Thread_local 2, b

1 Ключевые слова, введенные в ISO C99.

2 Ключевые слова, введенные в ISO C11.

a Начиная с Visual Studio 2019 версии 16.8, эти ключевые слова поддерживаются в коде, скомпилированном как C, когда /std:c11 или /std:c17 указаны параметры компилятора.

b Начиная с Visual Studio 2019 версии 16.8, эти ключевые слова распознаются, но не поддерживаются компилятором в коде, скомпилированном как C, когда параметры компилятора /std:c11 или /std:c17 указано.

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

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

Стандарты C ANSI и ISO позволяют зарезервировать идентификаторы с двумя ведущими символами подчеркивания для реализаций компилятора. Соглашение Microsoft заключается в том, чтобы перед именами ключевых слов, характерными для Microsoft, ставиться двойное подчеркивание. Эти слова нельзя использовать в качестве имен идентификаторов. Описание правил именования идентификаторов, включая использование двойных подчеркиваний, см. в разделе Идентификаторы.

Компилятор Microsoft C распознает следующие ключевые слова и специальные идентификаторы:

__asm ​​ 5
__based 3, 5
__cdecl 5
__declspec 5
__except 5
__fastcall
__finally 5

__inline 5
__int16 5
__int32 5
__int64 5
__int8 5
__leave 5
__restrict

__stdcall 5
__try 5
dllexport 4
dllimport 4
naked 4
static_assert 6
thread 4

3 Ключевое слово __based имеет ограниченное использование для 32-битных и 64-битных целевых компиляций.

4 Это специальные идентификаторы при использовании с __declspec ; их использование в других контекстах не ограничено.

5 Для совместимости с предыдущими версиями эти ключевые слова доступны как с двумя начальными символами подчеркивания, так и с одним начальным символом подчеркивания, когда включены расширения Microsoft.

6 Если не включить , компилятор Microsoft Visual C сопоставляет static_assert с ключевым словом C11 _Static_assert .

Расширения Microsoft включены по умолчанию. Чтобы облегчить создание переносимого кода, вы можете отключить расширения Microsoft, указав параметр /Za (отключить языковые расширения) во время компиляции. При использовании этого параметра некоторые ключевые слова Microsoft отключаются.

Когда расширения Microsoft включены, вы можете использовать перечисленные выше ключевые слова в своих программах.

This entry was posted in Ключевые слова