不如换个
#define bool _Bool
#define true 1
#define false 0
#define __bool_true_false_are_defined 1我们应该这样做:
#define bool _Bool
#define true (bool)1
#define false (bool)0
#define __bool_true_false_are_defined (bool)1这样,在这个问题中指定的问题就不会发生,方法是将文本转换成一个字节的bools,而不是留下四个字节的整数?我在哪里能正式提出这个建议?
另一个变化是,我们完全摆脱_Bool,只内置bool如何?
发布于 2020-02-06 01:17:01
您对true和false的建议使它们不适合在#if预处理宏中使用,这是语言标准特别提到的。
没有内置bool的一个原因是定义bool类型或宏的现有代码的数量。将bool作为内置类型会破坏现有的代码。
https://softwareengineering.stackexchange.com/questions/404760
复制相似问题