Ключевые слова в C
Ключевыми словами называются слова, которые имеют особое значение для компилятора C. На 7 и 8 этапах трансляции идентификатор не может иметь такое же написание и регистр записи, что и ключевое слово C. (См. описание этапов трансляции в Справочнике по препроцессору. Дополнительные сведения об идентификаторах см. в разделе Идентификаторы.) В языке C используются следующие ключевые слова:
auto |
double |
int |
struct |
break |
else |
long |
switch |
case |
enum |
register |
typedef |
char |
extern |
return |
union |
const |
float |
short |
unsigned |
continue |
for |
signed |
void |
default |
goto |
sizeof |
volatile |
do |
if |
static |
while |
Переопределить ключевые слова невозможно. Однако с помощью директив препроцессора C можно определить текст, который будет использоваться вместо ключевых слов.
Блок, относящийся только к системам Microsoft
Стандарт ANSI C позволяет зарезервировать идентификаторы, начинающиеся с двух символов подчеркивания, для реализаций компилятора. Поэтому в системах Microsoft действует соглашение, что используемые в них ключевые слова начинаются с двух символов подчеркивания. Эти слова невозможно использовать как имена идентификаторов. Описание правил именования идентификаторов в ANSI, включая использование двойных знаков подчеркивания, см. в разделе Идентификаторы.
Компилятор Microsoft C распознает следующие ключевые слова и особые идентификаторы.
__asm |
dllimport2 |
__int8 |
naked2 |
__based1 |
__except |
__int16 |
__stdcall |
__cdecl |
__fastcall |
__int32 |
thread2 |
__declspec |
__finally |
__int64 |
__try |
dllexport2 |
__inline |
__leave |
|
1. Ключевое слово __based имеет ограниченное применение: в компиляциях для 32- и 64-разрядных платформ.
2. Если эти ключевые слова используются с ключевым словом __declspec, они являются особыми идентификаторами. В других контекстах они могут использоваться без ограничений.
Расширения Microsoft по умолчанию включены. Для того чтобы ваши программы были полностью переносимы, расширения Microsoft можно отключить, установив во время компиляции параметр /Za (компилировать для совместимости с ANSI). При этом ключевые слова для систем Microsoft будут отключены.
Когда расширения Microsoft включены, в программах можно использовать перечисленные выше ключевые слова. Для совместимости со стандартом ANSI большинство этих ключевых слов начинаются с двух символов подчеркивания. Четыре исключения, dllexport, dllimport, naked и thread, используются только с ключевым словом __declspec и поэтому не требуют двойного знака подчеркивания. Для всех остальных ключевых слов поддерживаются версии с одним символом подчеркивания. Это сделано для обеспечения обратной совместимости.
Завершение блока, относящегося только к системам Microsoft