布尔和 C/C++互操作性
当我用 C 编写一个函数(这在 C++ 上下文中也可能有用)时,我是否应该使用 bool 宏?这是否会导致兼容性问题,在 C 和 C++ 中都定义了 bool 类型(好吧,C 定义了 _Bool,但你知道我的意思:-))?
When I write a function in C, which may also prove useful in a C++ context, shall I use the bool macro or not? Could that lead to compatibility issues, at C and C++ both define a bool type (well, C befines _Bool, but you know what I mean :-))?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么不使用
int
?它总是得到适当的支持。使用
bool
的唯一原因是您确定您的代码将仅在现代 C 和 C++ 环境中使用。但是,如果有任何机会它必须在一些旧的遗留编译器上运行,也许对于一个不起眼的嵌入式处理器,就必须有人插入宏并修改代码。Why not use
int
? It is always properly supported.The only reason to use
bool
would be if you knew for sure that your code would be used only in modern C and C++ environments. But if there was any chance it would have to run on some old legacy compiler, perhaps for an obscure embedded processor, someone would have to insert macros and massage the code.如果您对节省内存非常感兴趣,可以使用 char 代替。
If you are very interested in conserving memory, you could use a char instead.