C++ 为什么在VisualStudio中'false'一词是蓝色的,而'false'一词是紫色的?

C++ 为什么在VisualStudio中'false'一词是蓝色的,而'false'一词是紫色的?,c++,visual-studio,ide,syntax-highlighting,C++,Visual Studio,Ide,Syntax Highlighting,为什么Visual Studio会根据输入的方式更改单词颜色: false带蓝色,但false带紫色。 true带蓝色,但true带紫色 < P>是否有区别,如果是,是什么? < P> false 是C++中的关键词;它是蓝色的原因与的原因相同FALSE是由Windows API声明的预处理器宏;它是紫色的原因与MYFILE\u H\u DEFINED是紫色的原因相同。如果您进入C++的编辑器首选项,您将看到MSVC正在使用不同的标识符。 顺便说一下,真和假是WiNAPI特定的,是一个回退到C

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

false
带蓝色,但
false
带紫色。
true
带蓝色,但
true
带紫色


< P>是否有区别,如果是,是什么?

< P> <代码> false <代码>是C++中的关键词;它是蓝色的原因与
的原因相同
FALSE
是由Windows API声明的预处理器宏;它是紫色的原因与
MYFILE\u H\u DEFINED
是紫色的原因相同。如果您进入C++的编辑器首选项,您将看到MSVC正在使用不同的标识符。
顺便说一下,真和假是WiNAPI特定的,是一个回退到C,不应该使用,除非与WiLAPI通信。< /P> < P> > > > <代码> >代码> false >代码>是C++中的关键字,所以你的IDE(不是编译器)正在画它们蓝色。

真假通常由不同的标题定义,主要是为了兼容C和旧C++编译器,其中代码< >真< /COD>和<代码> false 是<强>不<强>关键字。 <> P>至于它们的等价性,C++标准做<强>不< /强>定义<代码> siZeOf(真)和 SIEZOF(false)< /C> > 1,但它们<强>将<<强> >与<代码> SIEZOF(BOOL)。C++标准脚注69:< /P> sizeof(bool)不要求为1


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

语法突出显示仅针对用户,这样您就可以理解您键入的单词是该语言的
关键字。每种语言都有自己的关键字集

只是澄清一下,这不是“编译器”改变颜色。这是VisualStudio为您做的。基于文件的扩展名。例如(.cpp.java.py.js)软件将根据不同的单词进行更改


资本的真和假是特定于Windows API(更具体地说,宏),至于小写,它是特定于C++语言。

FALSE
TRUE
是宏。它们被调用,由文本编辑器而不是编译器执行。文本编辑器使用的颜色与编译器如何解析代码或程序如何运行完全没有关系。@InSilco:这不是完全无关的。我们在这里谈论的是Visual Studio;它肯定会在您键入时编译文本(IntelliSense)。这就是它如何在错误上产生红色的拐角。@ MalStals:是的,虽然我在说“Visual C++编译器产生二进制”,而不是“IDE用于智能感知的EDG前端”。@ KisHanSarsecHaGajjar为什么认为应该在UX上?请注意,有关主要用于编程的工具的问题,请参见SO主题。此外,他并不是问为什么(从用户体验的角度)VisualStudio使用不同的颜色来显示相似的单词,而是问为什么(从语法/编程的角度)这些单词被认为是不同的(并因此以不同的方式突出显示)。事实上,整个问题可以重新表述,删除所有对颜色、UI和VisualStudio的引用,并简化为“在
true
true
之间是否存在语义差异?”。所以:肯定是关于这个话题的。