关键字 (C++)
关键字是具有特殊意义的预定义保留标识符。 它们不能用作程序中的标识符。 Microsoft C++ 保留了下列关键字。 带有前导下划线的名称,以及为 C++/CX 和 C++/CLI 指定的名称都是 Microsoft 扩展。
标准 C++ 关键字
alignas
alignof
and
b
and_eq
b
asm
a
auto
bitand
b
bitor
b
bool
break
case
catch
char
char8_t
c
char16_t
char32_t
class
compl
b
concept
c
const
const_cast
consteval
c
constexpr
constinit
c
continue
co_await
c
co_return
c
co_yield
c
decltype
default
delete
do
double
dynamic_cast
else
enum
explicit
export
c
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 位目标编译的用途有限。
__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
d 事件处理中使用的内部函数。
e 为了与以前的版本向后兼容,当启用 Microsoft 扩展时(默认),这些关键字既可以使用两个前导下划线,也可以使用一个前导下划线。
__declspec 修饰符中的 Microsoft 关键字
这些标识符是 __declspec
修饰符的扩展属性。 它们被视为该上下文中的关键字。
C++/CLI 和 C++/CX 关键字
__abstract
f
__box
f
__delegate
f
__gc
f
__identifier
__nogc
f
__noop
__pin
f
__property
f
__sealed
f
f 仅适用于 C++ 托管扩展。 此语法现已弃用。 有关更多信息,请参见 Component Extensions for Runtime Platforms。
g 适用于 C++/CLI。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈