जवाबों:
sizeof(bool)
कार्यान्वयन को परिभाषित किया गया है, और मानक इस तथ्य पर उल्लेखनीय जोर देता है।
§5.3.3 / 1, संक्षिप्त:
sizeof(char)
,sizeof(signed char)
औरsizeof(unsigned char)
1 हैं;sizeof
किसी अन्य मौलिक प्रकार पर लागू होने का परिणाम कार्यान्वयन-परिभाषित है। [नोट: विशेष रूप से,sizeof(bool)
औरsizeof(wchar_t)
कार्यान्वयन-परिभाषित हैं। 69) ]
फुटनोट 69):
sizeof(bool)
1 होना आवश्यक नहीं है।
http://msdn.microsoft.com/en-us/library/tf4dy80a.aspx
"विज़ुअल सी ++ 4.2 में, मानक सी ++ हेडर फ़ाइलों में एक टाइपडिफ होता है जो बूल को इंट के साथ समेटता है। विज़ुअल सी ++ 5.0 और बाद में, बूल को 1 बाइट के आकार के साथ बिल्ट-इन प्रकार के रूप में लागू किया जाता है। इसका मतलब है कि विज़ुअल के साथ। C ++ 4.2, sizeof (बूल) की एक कॉल 4 उपज देती है, जबकि Visual C ++ 5.0 और बाद में, एक ही कॉल की पैदावार होती है। यह मेमोरी करप्शन की समस्या पैदा कर सकता है यदि आपने Visual C ++ 4.2 में टाइप बूल के स्ट्रक्चर मेम्बर्स को परिभाषित किया है और मिक्स ऑब्जेक्ट है फ़ाइलें (OBJ) और / या DLL 4.2 और 5.0 या बाद के संकलक के साथ बनाया गया। "
यह कार्यान्वयन परिभाषित है। केवल sizeof(char)
है 1
मानक से।
CHAR_BIT
परिभाषित किया जा सकता है climits
।
bool
?