Visual Studio 语法高亮将此单词着色为蓝色,就好像它是关键字或保留字一样。我尝试在网上搜索它,但是“数组”这个词会导致搜索失败,我得到的主要是解释数组是什么的页面。它是干什么用的?
7 回答
它不是 ISO 标准下的保留字。微软的C++/CLI在cli 命名空间中定义了数组,Visual Studio 的语法高亮将其视为保留字。这种用法将被视为供应商扩展,而不是任何国际 C 或 C++ 标准的一部分。
ISO C99关键字:
自动枚举限制无符号 打破外部返回无效 案例浮动空头易失 用于签名的字符 const goto sizeof _Bool 如果静态 _Complex 则继续 默认内联结构 _Imaginary 做int切换 双长类型定义 否则注册工会
ISO C++98 关键字:
而不是这个 and_eq dynamic_cast not_eq 抛出 asm else 运算符为真 自动枚举或尝试 位和显式 or_eq 类型定义 bitor 导出私有类型标识 布尔外部受保护的类型名 打破虚假的公会 大小写浮点寄存器无符号 捕捉 reinterpret_cast 使用 char朋友返回虚拟 类转到短空 compl 如果有符号 volatile const inline sizeof wchar_t const_cast int 静态 while 继续 long static_cast xor 默认可变结构 xor_eq 删除命名空间开关 做新模板
It's used in C++/CLI.
Visual C++ Language Reference: "The array keyword lets you create a dynamic array that is allocated on the common language runtime heap."
它不是。至少不是在标准 C/C++ 中。
现在你可能会问为什么“entry”是 K&R 中的 C 中的保留字,但不是 C99 中的保留字——有人认为他们可能会在某个时候添加该功能,但最终决定反对。
Visual Studio 从不为他们漂亮的打印机定义不同的 C++ 语法而烦恼。ISO C++、VC++、C++/CLI 或只是旧的 C - 都共享相同的语法。因此,像数组和接口这样的名称都被视为关键字。
漂亮的打印机也很难发现 foo.cpp 中使用的 C++ 方言。您需要为此编译代码。目前漂亮的打印机可以对令牌进行操作,这意味着它只需要解析代码。
它不是保留字,但 Microsoft Visual Studio 决定将其标记为蓝色,就好像它是保留字一样,但绝对不是根据 DD Malik 的“C++ Programming 5th Edition”。
在 MSVC 中突出显示一个词的事实并不意味着它是 C 或 C++ 关键字。如您所见,它还突出显示了许多非标准的东西,例如__int64
,或者即使__int128
MSVC 中没有 128 位 int 类型。