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

Env*_*vil 29 c++ ide syntax-highlighting visual-studio

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

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

它们的含义是否有任何区别,如果是,它是什么?

Sne*_*tel 38

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

顺便提一下,TRUE和FALSE是WinAPI特有的并且是C的回归,除非与WinAPI通信时,否则不应该使用它.


Bat*_*eba 36

true并且false是C++ 中的关键字,因此您的IDE(而不是编译器)将它们涂成蓝色.

TRUE和FALSE经常被各种标头中定义,主要是为了与C和较旧的C++编译器,其中相容性truefalse关键字.

至于它们的等价性,C++标准没有定义sizeof(true)sizeof(false)为1,但它们是相同的sizeof(bool).C++标准的脚注69:

sizeof(bool)不要求为1.

你可能会发现,sizeof(TRUE)sizeof(FALSE)sizeof(int)因为TRUE和FALSE通常被定义为int类型,但它是不明智的承担起这个.


Jay*_*Jay 5

语法突出显示仅适用于用户,因此您可以理解您键入的单词是keyword针对该语言的.每种语言都有自己的关键字.

只是为了澄清,那不是"编译器"改变颜色.那是视觉工作室为你做的.基于文件的扩展名.即(.cpp .java .py .js)软件将针对不同的单词进行更改.

首都TRUE和FALSE特定于Windows API(更具体地说是宏),而小写字母则特定于c ++语言.