Gei*_*rer 4 c embedded stdbool
我正在阅读有关嵌入式系统的 C 编码风格,并发现以下声明:
不要使用 stdbool.h 库。分别使用 1 或 0 表示 true 或 false
该声明是在以下来源中编写的: https ://github.com/MaJerle/c-code-style
然而,没有解释为什么使用它或采用这种风格的优点/缺点。
我想知道使用 1 或 0 代替 true 或 false 是否有任何优势。
我想知道使用 1 或 0 代替 true 或 false 是否有任何优势。
没有。stdbool.h在嵌入式系统中使用是可以的。
请注意,这stdbool.h可能在较旧的编译器上不可用,但这不可能是原因,因为指南还链接了推荐的stdint.h类型(这本身就是一个很好的建议)。此外,您不应该使用过时的编译器。
具体可以说的是stdbool.h:
1因此,不使用标头并求助于/ 的主要原因0是与 C90 的向后兼容性。stdbool.h不必要(但尚未正式弃用),因为在 C23 中bool, ,true和false最终成为正确的关键字。_Bool仍然可用。编码风格也有以下规则:
\n\n\n不允许以 // 开头的注释。
\n
这也表明需要 C90 兼容性,因为这是您不允许此类注释的唯一原因(它们是在 C99 中引入的)。
\n\n\n不要在第一个可执行语句之后声明变量
\n
同样,这也是 C90 兼容性所必需的,否则没有任何意义。
\n所以我得出的结论是,添加了很多这些规则是为了兼容 C90,否则它们就没有意义。
\n