为什么在Visual Studio中`false`这个词写成蓝色,而`FALSE`这个词写成紫色?

问题描述 投票:0回答:4

为什么 Visual Studio 会根据输入的方式改变单词颜色:

false
蓝色,但
FALSE
紫色。
true
蓝色但
TRUE
紫色.

它们的含义有什么不同吗?如果有的话是什么?

c++ visual-studio ide syntax-highlighting
4个回答
38
投票

false
是C++中的关键字;出于同样的原因,它是蓝色的
for
是蓝色的。
FALSE
是Windows API声明的预处理器宏;它是紫色的,原因与
MYFILE_H_DEFINED
是紫色的原因相同。如果您进入 C++ 的编辑器首选项,您会看到 MSVC 用于不同标识符的颜色。

顺便说一句,TRUE 和 FALSE 是特定于 WinAPI 的,是对 C 的回溯,除非与 WinAPI 通信,否则不应使用。


36
投票

true
false
是 C++ 中的 keywords 所以你的 IDE(不是编译器)将它们涂成蓝色。

TRUE 和 FALSE 通常由各种标头定义,主要是为了与 C 和旧的 C++ 编译器兼容,其中

true
false
not 关键字。

至于它们的等价性,C++ 标准 not

sizeof(true)
sizeof(false)
定义为 1,但它们 will
sizeof(bool)
相同。 C++ 标准的脚注 69:

sizeof(bool) 不需要是 1.

您可能会发现

sizeof(TRUE)
sizeof(FALSE)
sizeof(int)
因为 TRUE 和 FALSE 通常被定义为
int
类型,但假设这一点是不明智的。


5
投票

语法高亮仅供用户使用,因此您可以理解您输入的单词是该语言的

keyword
。每种语言都有自己的一组关键字。

澄清一下,这不是“编译器”改变颜色。那是 visual studio 为你做的。基于文件的扩展名。即(.cpp .java .py .js)软件会因不同的词而改变。

大写的 TRUE 和 FALSE 是 Windows API 特有的(更具体地说是--macros),至于小写是 c++ 语言特有的。


-2
投票

同样的“确切”事情发生在我身上 ^完全正确 选项卡上的 C 图片对于 .h 文件为紫色,对于 .c 文件为蓝色 有人知道为什么吗

© www.soinside.com 2019 - 2024. All rights reserved.