2012-04-15 13 views
7

मैं इस सी मेरी प्रोग्रामिंग पुस्तकों में से एक में ++ कोड है?सी ++ में लंबवत पाइप (|) का क्या अर्थ है?</p> <pre><code>WNDCLASSEX wndClass = { 0 }; wndClass.cbSize = sizeof(WNDCLASSEX); wndClass.style = CS_HREDRAW | CS_VREDRAW; </code></pre> <p>क्या एक पाइप C++ खिड़कियों प्रोग्रामिंग क्या करता है:

+4

इसमें विंडोज प्रोग्रामिंग के साथ कुछ लेना देना नहीं है; यह सी ++ का मूल ऑपरेटर है। –

+0

ओह ठंडा। WNDCLASSEX को परिभाषित करते समय मुझे विंडोज प्रोग्रामिंग के संदर्भ में इसका सामना करना पड़ा। मैंने उन पंक्तियों को शामिल करने के लिए अपना प्रश्न संपादित किया। – quakkels

+1

दरअसल यह सी का एक ऑपरेटर है, सी ++ इसे – EdChum

उत्तर

21

बिटवायर या ऑपरेटर। यह सभी बिट्स को सत्य निर्धारित करेगा जो प्रदान किए गए दोनों मानों में से एक में सत्य हैं।

उदाहरण 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 */ 
} 

भी देखें:

+0

व्हाए .. को गोद लेता है ..? सभी बिट्स सच है? तो मुझे सोचने दो। 010101 | 101010 111111 वापस आ जाएगा? – quakkels

+0

मैं अभी भी बूलियन से परे बिट उन्मुख सामग्री के बारे में सीख रहा हूं। – quakkels

+2

हां। 'बी 00010101 | b00101010' 'b00111111' वापस आ जाएगा। – Zeta

7

| को bitwise OR operator कहा जाता है।

|| को लॉजिकल या ऑपरेटर कहा जाता है।

4

यह थोड़ा सा या ऑपरेटर है। उदाहरण के लिए,

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

Woohoo! प्रिंट करेगा।