使用逻辑或||组合两个整数?

发布于 2024-12-18 01:39:31 字数 431 浏览 4 评论 0原文

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

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

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

In this MSDN article on file sharing mode with std::ofstream, Microsoft writes:

To combine the filebuf::sh_read and filebuf::sh_write modes, use the logical OR (||) operator.

Both constants are of type int, as far as I can see, so I don't understand why we should use the logical OR instead of the bitwise OR (|). I always thought that the logical OR produces a Boolean value, so there is no way of interpreting the result?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

农村范ル 2024-12-25 01:39:31

这是一个文档错误。在更高的版本中,他们重组了文档,将位掩码类型的解释委托给以下页面

位掩码类型可以实现为整数类型或枚举。在任何一种情况下,您都可以对相同位掩码类型的值执行按位运算(例如 AND 和 OR)。位掩码类型的元素 A 和 B 是非零值,使得 A & B 是非零值。 B 为零。

http://msdn.microsoft到达那里

  1. 通过google
  2. 。 com/en-us/library/5785s5ts(v=vs.71).aspx
  3. http://msdn.microsoft.com/en-us/库/7z434859(v=vs.71).aspx
  4. http://msdn.microsoft.com/en-us/库/t60aakye(v=VS.71).aspx
  5. http://msdn.microsoft.com/en-us/库/y1et11xw(v=VS.71).aspx
  6. http://msdn.microsoft.com/en-us/ Library/5kb732k7(v=VS.71).aspx

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

It is a documentation error. In later versions, they have restructured the documentation, delegating the explanation of bitmask types to the following page:

A bitmask type can be implemented as either an integer type or an enumeration. In either case, you can perform bitwise operations (such as AND and OR) on values of the same bitmask type. The elements A and B of a bitmask type are nonzero values such that A & B is zero.

Get there via

  1. google
  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

Yay! for MSDN navigation. Also, VS2010 documentation has been altered again: the newest page doesn't even describe the semantics of the flags fields anymore (allthough, you could take one mention of _Mode | ios_base::out to imply that the params are bitmask combinations)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文