में प्रगमा पैक निर्देश का दायरा दृश्य C++ में #pragma pack
संरेखण का दायरा क्या है? API संदर्भ https://msdn.microsoft.com/en-us/library/vstudio/2e70t5y1%28v=vs.120%29.aspx का कहना है:विजुअल स्टूडियो
निम्न कोड के लिए एक परिणाम के रूपपैक पहली struct पर प्रभावी होता है, संघ, या वर्ग घोषणा pragma के बाद
तो देखा जाता है:
#include <iostream>
#pragma pack(push, 1)
struct FirstExample
{
int intVar; // 4 bytes
char charVar; // 1 byte
};
struct SecondExample
{
int intVar; // 4 bytes
char charVar; // 1 byte
};
void main()
{
printf("Size of the FirstExample is %d\n", sizeof(FirstExample));
printf("Size of the SecondExample is %d\n", sizeof(SecondExample));
}
मैं उम्मीद कर लिए हैं:
Size of the FirstExample is 5
Size of the SecondExample is 8
लेकिन मैं प्राप्त किया है:
Size of the FirstExample is 5
Size of the SecondExample is 5
है यही कारण है कि मैं एक छोटे से हैरान हूँ और मैं वास्तव में किसी भी स्पष्टीकरण प्रदान कर सकते हैं की सराहना करते हैं।
आपकी दोनों संरचनाएं फ़ाइल में प्रज्ञा के बाद स्थित हैं। अगर वे अलग हैं तो मुझे आश्चर्य होगा। आपका आउटपुट दो 'फर्स्टएक्स नमूना' लाइन दिखाता है, इसलिए यह आपके स्रोत कोड से मेल नहीं खाता है ... – Jay
@Jay आपकी टिप्पणी के लिए धन्यवाद। मैंने इस गलती को सही कर दिया है। – rgb