使用逻辑OR ||组合两个整数

Use logical OR || to combine two integers?

本文关键字:整数 两个 组合 OR      更新时间:2023-10-16

在这篇关于std::ofstream文件共享模式的MSDN文章中,微软写道:

如果要组合filebuf::sh_readfilebuf::sh_write模式,请使用逻辑或(||)运算符。

两个常量都是int类型,据我所见,所以我不明白为什么我们应该使用逻辑 OR而不是位或(|)。我一直认为逻辑或产生一个布尔值,所以没有办法解释结果?

这是文档错误。在以后的版本中,他们重新构造了文档,将位掩码类型的解释委托给以下页面:

位掩码类型既可以实现为整数类型,也可以实现为枚举类型。在这两种情况下,您都可以对相同位掩码类型的值执行按位操作(如AND和OR)。位掩码类型的元素A和B是非零值,使得A &B是0

通过

到达那里
  1. 谷歌
  2. http://msdn.microsoft.com/en-us/library/5785s5ts (v = vs.71) . aspx
  3. http://msdn.microsoft.com/en-us/library/7z434859 (v = vs.71) . aspx
  4. http://msdn.microsoft.com/en-us/library/t60aakye (v = VS.71) . aspx
  5. http://msdn.microsoft.com/en-us/library/y1et11xw (v = VS.71) . aspx
  6. http://msdn.microsoft.com/en-us/library/5kb732k7 (v = VS.71) . aspx

耶!用于MSDN导航。此外,VS2010的文档又被修改了:最新的页面甚至不再描述标志字段的语义了(尽管如此,你可以用一个提到_Mode | ios_base::out来暗示参数是位掩码组合)