为什么在Visual Studio中单词“false”写为蓝色而单词“FALSE”写为紫色?

mklgxw1f  于 2023-03-19  发布在  其他
关注(0)|答案(3)|浏览(299)

为什么Visual Studio会根据单词color的输入方式来更改它:
false带有蓝色,但FALSE带有紫色。
true带有蓝色,但TRUE带有紫色。
它们的含义有什么不同吗?如果有,是什么?

vs3odd8k

vs3odd8k1#

false是C中的关键字;它是蓝色的原因与for是蓝色的原因相同。FALSE是Windows API声明的预处理器宏;它是紫色的原因和MYFILE_H_DEFINED是紫色的原因是一样的,如果你进入C的编辑器首选项,你会看到MSVC对不同的标识符使用的颜色。
顺便说一句,TRUE和FALSE是特定于WinAPI的,是对C语言的一种倒退,除非与WinAPI通信,否则不应使用。

xytpbqjk

xytpbqjk2#

truefalse在C中是 keywords,因此您的IDE(不是编译器)将它们涂成蓝色。
TRUE和FALSE通常由不同的头文件定义,主要是为了与C和较旧的C
编译器兼容,其中truefalse而不是关键字。
至于它们的等价性,C++标准没有sizeof(true)sizeof(false)定义为1,但它们sizeof(bool)相同。
sizeof(bool)不需要为1。
您可能会发现sizeof(TRUE)sizeof(FALSE)sizeof(int),因为TRUE和FALSE通常被定义为int类型,但这样假设是不明智的。

siv3szwd

siv3szwd3#

语法高亮显示只是为了让用户明白你输入的单词是该语言的一个keyword。每种语言都有自己的关键字集。
澄清一下,那不是“编译器”改变颜色,那是VisualStudio为您做的。基于文件的扩展名. I.e(.cpp .java .py .js),软件将为不同的单词而改变。
大写的TRUE和FALSE特定于Windows API(更具体地说--宏),至于小写,则特定于c++语言。

相关问题