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

时间:2014-09-05 07:01:39

标签: c++ visual-studio ide syntax-highlighting

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

带有蓝色的

false,但带有紫色的FALSE true为蓝色,TRUE为紫色。

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

3 个答案:

答案 0 :(得分:38)

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

顺便说一下,TRUE和FALSE是特定于WinAPI的,是C的回归,除了与WinAPI通信时,不应该使用它。

答案 1 :(得分:36)

truefalse是C ++中的关键字,因此您的IDE(不是编译器)将它们涂成蓝色。

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

至于它们的等价性,C ++标准定义sizeof(true)sizeof(false)为1,但与{相同> {1}}。 C ++标准的脚注69:

  

sizeof(bool)不一定是1.

您可能会发现sizeof(bool)sizeof(TRUE)sizeof(FALSE),因为TRUE和FALSE通常被定义为sizeof(int)类型,但假设是不明智的此

答案 2 :(得分:5)

语法突出显示仅适用于用户,因此您可以了解您输入的单词是该语言的keyword。每种语言都有自己的一组关键字。

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

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