Содержание
Ключевые слова в 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
inline
1, aint
long
register
restrict
1, areturn
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
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 можно определить текст, который будет использоваться вместо ключевых слов.
Ключевые слова C для систем Microsoft
Стандарты ANSI и ISO C позволяют зарезервировать идентификаторы, начинающиеся с двух символов подчеркивания, для реализаций компилятора. Поэтому в системах 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
5dllexport
4dllimport
4naked
4static_assert
6thread
4
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
and
Band_eq
Basm
aauto
bitand
Bbitor
Bbool
break
case
catch
char
char8_t
cchar16_t
char32_t
class
compl
Bconcept
cconst
const_cast
consteval
cconstexpr
constinit
ccontinue
co_await
cco_return
cco_yield
cdecltype
default
delete
do
double
dynamic_cast
else
enum
explicit
export
cextern
false
float
for
friend
goto
if
inline
int
long
mutable
namespace
new
noexcept
not
Bnot_eq
Bnullptr
operator
or
Bor_eq
Bprivate
protected
public
register
reinterpret_cast
requires
creturn
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
xor
Bxor_eq
B
Ключевое слово, определенное корпорацией __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-разрядных целевых компиляций.
__alignof
E__asm
E__assume
E__based
E__cdecl
E__declspec
E__event
__except
E__fastcall
E__finally
E__forceinline
E
__hook
D__if_exists
__if_not_exists
__inline
E__int16
E__int32
E__int64
E__int8
E__interface
__leave
E__m128
__m128d
__m128i
__m64
__multiple_inheritance
E__ptr32
E__ptr64
E__raise
__restrict
E__single_inheritance
E__sptr
E__stdcall
E
__super
__thiscall
__unaligned
E__unhook
D__uptr
E__uuidof
E__vectorcall
E__virtual_inheritance
E__w64
E__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
__abstract
F__box
F__delegate
F__gc
F__identifier
__nogc
F__noop
__pin
F__property
F__sealed
F
__try_cast
F__value
Fabstract
Г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
Специальные символы
, | < | > | . | _ | |
( | ) | ; | $ | : | |
% | [ 9 | ! | * | / | | |
— | \ | ~ | + |
Пробел Символы
Пробел, новая строка, горизонтальная табуляция, возврат каретки и перевод страницы.
Ключевые слова C
Ключевые слова — это предопределенные, зарезервированные слова, используемые в программировании, которые имеют особое значение для компилятора. Ключевые слова являются частью синтаксиса и не могут использоваться в качестве идентификатора. Например:
инт деньги;
Здесь int
— ключевое слово, указывающее, что money — это переменная типа int
(целое число).
Поскольку язык C чувствителен к регистру, все ключевые слова должны быть написаны строчными буквами. Вот список всех ключевых слов, разрешенных в ANSI C.
авто | двойной | внутр. | структура |
перерыв | еще | длинный | переключатель |
Чемодан | перечисление | регистр | определение типа |
символ | внешний | возврат | штуцер |
продолжить | для | подписанный | пустота |
до | если | статический | и |
по умолчанию | перейти к | размер | энергозависимый |
константа | поплавок | короткий | без знака |
Все эти ключевые слова, их синтаксис и применение будут обсуждаться в соответствующих темах. Однако, если вы хотите получить краткий обзор этих ключевых слов, не идя дальше, посетите Список всех ключевых слов в программировании на C.
C Идентификаторы
Идентификатор относится к имени, данному объектам, таким как переменные, функции, структуры и т. д.
Идентификаторы должны быть уникальными. Они создаются, чтобы дать объекту уникальное имя, позволяющее идентифицировать его во время выполнения программы. Например:
инт деньги; двойной счет Баланс;
Здесь деньги и accountBalance являются идентификаторами.
Также помните, имена идентификаторов должны отличаться от ключевых слов. Вы не можете использовать int
в качестве идентификатора, потому что int
– это ключевое слово.
Правила наименования идентификаторов
- Действительный идентификатор может содержать буквы (как прописные, так и строчные), цифры и символы подчеркивания.
- Первая буква идентификатора должна быть либо буквой, либо знаком подчеркивания.
- Вы не можете использовать в качестве идентификаторов такие ключевые слова, как
int
,while
и т.д. - Не существует правила относительно длины идентификатора. Однако вы можете столкнуться с проблемами в некоторых компиляторах, если идентификатор длиннее 31 символа.
Вы можете выбрать любое имя в качестве идентификатора, если будете следовать приведенному выше правилу, однако давайте осмысленные имена идентификаторам, которые имеют смысл.
Содержание
C Ключевые слова | Microsoft Узнайте
Обратная связь
Редактировать
Твиттер
Фейсбук
Эл. адрес
- Статья
- 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 Если не включить static_assert
с ключевым словом C11 _Static_assert
.
Расширения Microsoft включены по умолчанию. Чтобы облегчить создание переносимого кода, вы можете отключить расширения Microsoft, указав параметр /Za (отключить языковые расширения) во время компиляции. При использовании этого параметра некоторые ключевые слова Microsoft отключаются.
Когда расширения Microsoft включены, вы можете использовать перечисленные выше ключевые слова в своих программах.