我必须维护一个相当老的Visual C++源代码的大型代码库。我找到了如下代码:
bIsOk = !!m_ptr->isOpen(some Parameters)bIsOk的数据类型为bool,isOpen(..)返回BOOL (定义为int)
工程师告诉我,据说这是从BOOL到bool的最有效的方法。
这是正确的吗?现在还是这样吗?2019年?
发布于 2019-02-23 02:15:08
假设你要赋值给一个bool,这样的转换已经被编译器隐式地完成了,所以“双击”在这里是没有用的。
如果需要从表达式中的BOOL获取bool,“规范化”BOOL (或类似的东西)仍然很有用。在现代编译器上,我希望它能生成与!= 0相同的代码,唯一的优点是它的类型更少(特别是考虑到一元!具有很高的优先级,而对于!=,您可能需要添加括号)。
https://stackoverflow.com/questions/54832788
复制相似问题