为什么Visual Studio会根据输入的方式更改单词颜色:
带有蓝色的 false
,但带有紫色的FALSE
true
为蓝色,TRUE
为紫色。
它们的含义是否有任何区别,如果是,它是什么?
答案 0 :(得分:38)
false
是C ++中的关键字;出于同样的原因它是蓝色的for
是蓝色的。 FALSE
是Windows API声明的预处理器宏;由于同样的原因,它是紫色的MYFILE_H_DEFINED
是紫色的。如果您进入C ++的编辑器首选项,您将看到MSVC用于不同标识符的颜色。
顺便说一下,TRUE和FALSE是特定于WinAPI的,是C的回归,除了与WinAPI通信时,不应该使用它。
答案 1 :(得分:36)
true
和false
是C ++中的关键字,因此您的IDE(不是编译器)将它们涂成蓝色。
TRUE和FALSE通常由各种标头定义,主要是为了与C和较旧的C ++编译器兼容,其中true
和false
是不是关键字。
至于它们的等价性,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 ++语言。