为什么在为 C89 配置的 Xcode 中突出显示 'bool' 关键字语法?

Why is 'bool' keyword syntax highlighted in Xcode configured for C89?

我读到 C 中的布尔值首先出现在 C99 中。现在我想知道为什么 bool 仍然被 Xcode 的语法突出显示着色,或者你怎么称呼它...
当在 Xcode 的构建设置中搜索 "dial" 时,"Language Dialect" 弹出,我在那里 "dial-in" C89 标准,并且 bool 仍然被着色。

这是为什么?

我也看过这个:
Using boolean values in C

我知道他们是怎么做到的,但我也不明白示例 3 和 4 是如何工作的...

Option 3
typedef int bool;
enum { false, true };

Option 4
typedef int bool;
#define true 1
#define false 0

注意:我不明白 typedef int bool; 怎么会与 enum { false, true };.

行相连

为什么 xcode C89 不忽略 bool 关键字?
这些示例如何工作?

语法高亮是XCode使用的一种近似方法;它不能保证遵循任何标准。并不是说 syntax highlighting in XCode 不够先进,但如果不针对特定标准进行编译,就很难实时判断这些符号的确切含义。

在选项 3 的情况下,它正在执行 implicit conversion from an anonymous enum to an int. Since they are compatible types, it is "always a no-op and does not change the representation." The default enum values for { false, true } are { 0, 1 }, so this should result in the same assembler output. This answer has the order of preference 当一个人不知道要选择什么时。