2009-10-08 14 views
5

सी # StructLayoutAttribute.Pack प्रदान करता है, लेकिन इसका व्यवहार यह है कि "प्रत्येक सदस्य को कम से कम निर्दिष्ट संरेखण मिलता है चाहे वह चाहे या नहीं", जबकि सी ++ में #pragma पैक का व्यवहार "हर सदस्य को संरेखण प्राप्त होता है, जब तक कि यह नहीं निर्दिष्ट संरेखण से अधिक चाहता है, इस मामले में इसे उससे अधिक प्राप्त करने की गारंटी नहीं है "।क्या सी # में सी ++ में #pragma पैक के बराबर है?

क्या सी # में एक स्ट्रक्चर के लेआउट को एक विशिष्ट #pragma पैक के साथ समान संरचना के लेआउट के समान होने का कोई तरीका है, स्ट्रक्चरलाइट (लेआउटकिंड.एक्सप्लिट) और फील्डऑफसेट का उपयोग करने के अलावा सदस्य, या अप्रयुक्त पैडिंग सदस्यों को डालने?

+0

क्या आप एक अंतर उदाहरण प्रदान कर सकते हैं जो आप देख रहे अंतर को दिखाते हैं और यह समस्या क्यों पैदा कर रहा है? StructLayout.Pack हमेशा मेरी जरूरतों को कवर किया है। –

उत्तर

6

स्ट्रक्चरलायआउट.पैक के साथ प्रयोग करने के बाद, ऐसा लगता है कि यह वास्तव में सी ++ में #pragma पैक जैसा ही काम करता है। StructLayout.Pack (जो मेरी मूल पोस्ट में वर्णित व्यवहार का दावा करता है) के लिए एमएसडीएन दस्तावेज़ों को मानना ​​एक गलती थी।

संबंधित मुद्दे