मैं कुछ डेटा संरचना के लिए एक पार्सर लिखता हूं, डिबगिंग के घंटों के बाद मुझे पता चला कि समस्या यह है कि विजुअल स्टूडियो संरचनाओं की व्याख्या नहीं करता है जैसा कि मैंने इसे बताया है। यह कुछ "पैडिंग" प्रयोग किया जाता हैस्थानीय रूप से पैडिंग अक्षम करें
struct foo {
unsigned char a; //0x00
unsigned char b; //0x01
unsigned int c; //0x02
unsigned int d; //0x06
unsigned int e; //0x0A
unsigned int f; //0x0E
//0x12
};
मैं उम्मीद "sizeof (foo) = 4 * 4 + 2 = 18" लेकिन मैं "sizeof (foo) = 20" मिल रहा है। क्या इस विशेष संरचना के लिए पैडिंग बंद करने की कोई संभावना है? मैंने
__declspec(align(1)) struct foo { ...
लेकिन यह काम नहीं करता है। आपके सहयोग के लिए धन्यवाद।
मुझे लगता है कि [MSDN पर इस लेख में मदद मिलेगी] (http://msdn.microsoft.com/en-us/library/ms253935%28v=vs। 90% 29.aspx)। –
क्या आप '/ Zp 1' के साथ संकलित हैं? –
@ मार्टिन ब्रॉडहर्स्ट जो वैश्विक स्तर पर पैडिंग को अक्षम कर देगा, हंस का समाधान काम करता है। – Listing