20

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

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

单管在 C++ windows 编程中有什么作用?

4

3 回答 3

32

按位或运算符。它将在提供的两个值中的任何一个中设置为真的所有位。

例如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 */
}

也可以看看:

于 2012-04-15T16:58:21.577 回答
9

|称为按位或运算符

||称为逻辑或运算符。

于 2012-04-15T16:57:53.720 回答
4

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

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

将打印Woohoo!

于 2012-04-15T16:58:48.627 回答