सी ++ मानक में:क्या एकमात्र प्रकार एक अनिवार्य आकार के साथ है?
sizeof(char)
,sizeof(signed char)
औरsizeof(unsigned char)
1
हैं।
वहाँ सी में किसी भी अन्य प्रकार ++ जो एक तय कर दी है
sizeof
हैं?क्या खाली संरचना इस परिभाषा से मेल खाती है?
सी ++ मानक में:क्या एकमात्र प्रकार एक अनिवार्य आकार के साथ है?
sizeof(char)
,sizeof(signed char)
औरsizeof(unsigned char)
1
हैं।
वहाँ सी में किसी भी अन्य प्रकार ++ जो एक तय कर दी है sizeof
हैं?
क्या खाली संरचना इस परिभाषा से मेल खाती है?
नहीं। आप कहते हैं के रूप में, sizeof(signed char)
, sizeof(unsigned char)
, और sizeof(char)
मानक द्वारा परिभाषित कर रहे हो करने के लिए 1. ध्यान दें कि char
या तो signed
या unsigned
लेकिन यह हमेशा एक अलग प्रकार माना जाता है होना चाहिए। (अन्यथा सूचक sizeof
कुछ और कुछ की कमी के कार्यान्वयन विषय (जैसे sizeof(long)
sizeof(int)
से कम नहीं हो सकता है।)
सी ++ मानक की आवश्यकता sizeof
एक खाली कक्षा एक अभिन्न मान शून्य से अधिक होना करने के लिए करने के लिए नीचे है अंकगणित टूट जाएगा बुरी तरह)।
प्रश्न 1 के संबंध में, आपके पास stdint.h
में भी प्रकार हैं।
1) वहाँ सी में किसी भी अन्य प्रकार ++ जो एक निश्चित sizeof है कर रहे हैं?
sizeof(T[N]) == N * sizeof(T)
तो
sizeof(char[42])
42
है:
सरणियों जो आकार निर्दिष्ट किया है रहे हैं।
2) क्या खाली संरचना इस परिभाषा से मेल खाती है?
खाली struct न char
, signed char
या unsigned char
है, इसलिए यह इस परिभाषा के अनुरूप नहीं है। (बीटीडब्ल्यू इसकी sizeof
0
नहीं हो सकता है)।
'char' का निश्चित आकार इसलिए है क्योंकि यह किसी भी सिस्टम पर सबसे छोटी पता योग्य इकाई है। और नहीं, किसी अन्य प्रकार की यह आवश्यकता नहीं है। और हां खाली संरचनाओं का आकार होना चाहिए (या वे संबोधित नहीं होंगे) ताकि उनका आकार (कम से कम) एक हो। –