[因此,我读到C语言中的布尔值首先是C99。现在,我想知道为什么bool仍然会因Xcode的语法突出显示而着色,或者您称其为...当人们在xcode的构建设置中搜索“拨号”时,会弹出“语言方言”,并且在这里“拨号” C89标准,并且布尔仍然是彩色的。
为什么?
我也读过这篇文章: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 };
连接。
为什么带有C89的xcode不能忽略bool关键字?示例如何工作?
它正在执行从匿名implicit conversion到enum
的int
。由于它们是兼容类型,因此它是“始终禁止操作且不会更改表示形式”。 default enum的{ false, true }
值为{ 0, 1 }
,因此这将导致相同的汇编器输出。当一个人不知道该选什么时,会回答has the order of preference。