根据C标准现在表示:
取消定义和重新定义宏bool、true和false的能力是一项过时的功能,可能会在将来的版本中删除。
也就是说,stdbool.h
已经被弃用。但是没有给出任何理由,我也找不到原因。他们是打算将bool作为基本类型永久添加呢,还是有其他原因?
如果您知道这个被弃用的原因,请告诉我!
第一个是您链接到了一个POSIX参考文献,它通常遵循C标准,但并不一定如此。
您引用的部分是说明性的而非事实性的,因此可能根本不反映C标准。因此,它也不具有权威性。
引用还说,能够取消定义或重新定义宏的用户的能力可能会被取消。 <stdbool.h>
头文件中的宏不会受到影响。
最后,它还说,可能会被取消的是可能性,而不是已经被取消或将要被取消。
<stdbool.h>
执行除了将true
和false
定义为等同于0
和1
的宏之外的其他操作(例如,将它们定义为扩展到编译器内部函数__true
和__false
的宏--也许是为了帮助编译器生成更有用的诊断信息)。这样的处理将被取消应用程序未定义这些宏并将它们重新定义为0和1所破坏。 - supercat<stdbool.h>
被弃用了……恐怕不是那样。它可能意味着由于 <stdbool.h>
头文件的存在,定义 true
或 false
和 bool
宏的任务被弃用了。 - Luis Colorado
stdbool.h
被标记为废弃? - Kami Kaze"ability to undefine and redefine the macros"
!=stdbool.h
- vgru