C 关键字

“关键字”是对 C 编译器具有特殊含义的单词。 在翻译的第 7 和第 8 阶段中,标识符不能具有与 C 关键字相同的拼写和大小写。 (请参阅《预处理器参考》中的翻译阶段的说明;有关标识符的信息,请参阅标识符。)C 语言使用下列关键字:

auto 双精度 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 约定的是在 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 扩展。 若要确保您的程序是完全可移植的,可通过在编译期间指定 /Za 选项(针对 ANSI 兼容性编译)来禁用 Microsoft 扩展。 如果这样做,将禁用 Microsoft 专用关键字。

    启用 Microsoft 扩展时,您可在程序中使用上面列出的关键字。 为了兼容 ANSI,这其中大部分关键字以一个双下划线开头。 dllexportdllimportnakedthread 这 4 个关键字除外,它们仅与 __declspec 一起使用,因此无需前导双下划线。 为了向后兼容,支持其余的关键字的单下划线版本。

    结束 Microsoft 专用

另请参阅

C 的元素