关键字 (C++)

关键字是具有特殊意义的预定义保留标识符。 它们不能用作程序中的标识符。 Microsoft C++ 保留了下列关键字。 带有前导下划线的名称,以及为 C++/CX 和 C++/CLI 指定的名称都是 Microsoft 扩展。

标准 C++ 关键字

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

a Microsoft 专用 __asm 关键字替换了 C++ asm 语法。 保留了 asm 以便与其他 C++ 实现兼容,但未成功。 将 __asm 用于 x86 目标上的内联程序集。 Microsoft C++ 不支持其他目标的内联程序集。

b 当指定 /permissive-/Za(禁用语言扩展)时,扩展运算符同义词是关键字。 当启用 Microsoft 扩展时,它们不是关键字。

c 指定 /std:c++20 或更高版本(例如 /std:c++latest)时受支持。

Microsoft 专用 C++ 关键字

在 C++ 中,包含两个连续下划线的标识符会保留用于编译器实现。 Microsoft 约定位于带双下划线的 Microsoft 专用关键字前面。 这些单词不能用作标识符名称。

默认情况下将启用 Microsoft 扩展。 若要确保你的程序是完全可移植的,可通过在编译期间指定 /permissive-/Za(禁用语言扩展)选项来禁用 Microsoft 扩展。 这些选项禁用某些 Microsoft 专用关键字。

启用 Microsoft 扩展后,你可以在程序中使用 Microsoft 特定关键字。 为了符合 ANSI,这些关键字的前面有一条双下划线。 出于后向兼容性考虑,支持许多双下划线关键字的单下划线版本。 提供的 __cdecl 关键字没有前导下划线。

__asm 关键字替代了 C++ asm 语法。 保留了 asm 以便与其他 C++ 实现兼容,但未成功。 请使用 __asm

__based 关键字对 32 位和 64 位目标编译的用途有限。

d 事件处理中使用的内部函数。

e 为了与以前的版本向后兼容,当启用 Microsoft 扩展时(默认),这些关键字既可以使用两个前导下划线,也可以使用一个前导下划线。

__declspec 修饰符中的 Microsoft 关键字

这些标识符是 __declspec 修饰符的扩展属性。 它们被视为该上下文中的关键字。

C++/CLI 和 C++/CX 关键字

__abstractf
__boxf
__delegatef
__gcf
__identifier
__nogcf
__noop
__pinf
__propertyf
__sealedf

f 仅适用于 C++ 托管扩展。 此语法现已弃用。 有关更多信息,请参见 Component Extensions for Runtime Platforms

g 适用于 C++/CLI。

另请参阅

词法约定
C++ 内置运算符、优先级和关联性