垂直管道(|)在C ++中意味着什么?

时间:2012-04-15 16:56:45

标签: c++ pipe

我在我的一本编程书中有这个C ++代码:

WNDCLASSEX wndClass = { 0 };
wndClass.cbSize = sizeof(WNDCLASSEX);
wndClass.style =  CS_HREDRAW | CS_VREDRAW;

单管在C ++ windows编程中做了什么?

3 个答案:

答案 0 :(得分:22)

按位OR运算符。它将所有位都设置为true,这两个值都提供。

例如CS_HREDRAW可以是1而CS_VREDRAW可以是2.然后通过使用按位AND运算符&检查它们是否设置非常简单:

#define CS_HREDRAW 1
#define CS_VREDRAW 2
#define CS_ANOTHERSTYLE 4

unsigned int style = CS_HREDRAW | CS_VREDRAW;
if(style & CS_HREDRAW){
    /* CS_HREDRAW set */
}

if(style & CS_VREDRAW){
    /* CS_VREDRAW set */
}

if(style & CS_ANOTHERSTYLE){
    /* CS_ANOTHERSTYLE set */
}

另见:

答案 1 :(得分:9)

|被称为bitwise OR operator

||被称为逻辑OR运算符。

答案 2 :(得分:4)

这是一个按位OR运算符。例如,

if( 1 | 2 == 3) {
    std::cout << "Woohoo!" << std::endl;
}

将打印Woohoo!