C关键字
“关键字”是具有特殊含义对于 C 编译器的单词。 在转换阶段 7 和 8 中,标识符不能具有拼写并用例和 c. 关键字相同。 (请参见 转换阶段 的声明在 预处理器的引用;有关标识符的信息,请参见 标识符。)C 语言使用以下关键字:
自动 |
double |
int |
struct |
break |
else |
long |
switch |
case |
enum |
注册 |
typedef |
char |
extern |
return |
union |
const |
float |
short |
unsigned |
continue |
for |
签名 |
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 |
线程2 |
__declspec |
__finally |
__int64 |
__try |
dllexport2 |
__inline |
__leave |
|
1. __based 关键字与 32 位和 64 位目标生成的限定使用。
2. 这些是特殊标识符,当使用 __declspec;它们用于其他上下文不受限制。
默认情况下 Microsoft 扩展启用。 若要确保程序是完全可移植的,则可以通过指定 /Za 选项禁用 Microsoft 扩展 (对于 ANSI 兼容性请编译) 在编译时。 如果这样做,特定于 Microsoft 的关键字被禁用。
在 Microsoft 扩展启用时,可以在程序可以使用列出的关键字上面。 对于 ANSI 标准,大部分关键字后跟一个双下划线开头。 四个异常, dllexport、 dllimport、 naked和 线程,仅用于 __declspec 并且不需要前导的双下划线。 对于向后兼容性,关键字的其余部分的单下划线版本支持。
特定于 Microsoft 的结尾