为什么在为 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 当一个人不知道要选择什么时。
我读到 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 当一个人不知道要选择什么时。