为什么Visual Studio会根据单词color的输入方式来更改它:false带有蓝色,但FALSE带有紫色。true带有蓝色,但TRUE带有紫色。它们的含义有什么不同吗?如果有,是什么?
false
FALSE
true
TRUE
vs3odd8k1#
false是C中的关键字;它是蓝色的原因与for是蓝色的原因相同。FALSE是Windows API声明的预处理器宏;它是紫色的原因和MYFILE_H_DEFINED是紫色的原因是一样的,如果你进入C的编辑器首选项,你会看到MSVC对不同的标识符使用的颜色。顺便说一句,TRUE和FALSE是特定于WinAPI的,是对C语言的一种倒退,除非与WinAPI通信,否则不应使用。
for
MYFILE_H_DEFINED
xytpbqjk2#
true和false在C中是 keywords,因此您的IDE(不是编译器)将它们涂成蓝色。TRUE和FALSE通常由不同的头文件定义,主要是为了与C和较旧的C编译器兼容,其中true和false是而不是关键字。至于它们的等价性,C++标准没有将sizeof(true)和sizeof(false)定义为1,但它们将与sizeof(bool)相同。sizeof(bool)不需要为1。您可能会发现sizeof(TRUE)和sizeof(FALSE)是sizeof(int),因为TRUE和FALSE通常被定义为int类型,但这样假设是不明智的。
sizeof(true)
sizeof(false)
sizeof(bool)
sizeof(TRUE)
sizeof(FALSE)
sizeof(int)
int
siv3szwd3#
语法高亮显示只是为了让用户明白你输入的单词是该语言的一个keyword。每种语言都有自己的关键字集。澄清一下,那不是“编译器”改变颜色,那是VisualStudio为您做的。基于文件的扩展名. I.e(.cpp .java .py .js),软件将为不同的单词而改变。大写的TRUE和FALSE特定于Windows API(更具体地说--宏),至于小写,则特定于c++语言。
keyword
3条答案
按热度按时间vs3odd8k1#
false
是C中的关键字;它是蓝色的原因与for
是蓝色的原因相同。FALSE
是Windows API声明的预处理器宏;它是紫色的原因和MYFILE_H_DEFINED
是紫色的原因是一样的,如果你进入C的编辑器首选项,你会看到MSVC对不同的标识符使用的颜色。顺便说一句,TRUE和FALSE是特定于WinAPI的,是对C语言的一种倒退,除非与WinAPI通信,否则不应使用。
xytpbqjk2#
true
和false
在C中是 keywords,因此您的IDE(不是编译器)将它们涂成蓝色。TRUE和FALSE通常由不同的头文件定义,主要是为了与C和较旧的C编译器兼容,其中
true
和false
是而不是关键字。至于它们的等价性,C++标准没有将
sizeof(true)
和sizeof(false)
定义为1,但它们将与sizeof(bool)
相同。sizeof(bool)不需要为1。
您可能会发现
sizeof(TRUE)
和sizeof(FALSE)
是sizeof(int)
,因为TRUE和FALSE通常被定义为int
类型,但这样假设是不明智的。siv3szwd3#
语法高亮显示只是为了让用户明白你输入的单词是该语言的一个
keyword
。每种语言都有自己的关键字集。澄清一下,那不是“编译器”改变颜色,那是VisualStudio为您做的。基于文件的扩展名. I.e(.cpp .java .py .js),软件将为不同的单词而改变。
大写的TRUE和FALSE特定于Windows API(更具体地说--宏),至于小写,则特定于c++语言。