संपादित करें: क्षमा करें, मैंने सवाल को गलत तरीके से पढ़ा और सोचा कि आप एचएससी 2 एचएस के साथ ऐसा करने के बारे में पूछ रहे थे, बिना नहीं। गलत संरेखण गलत डेटा का कारण बन सकता है और क्रैश का कारण बन सकता है (मान लें कि क्या आप structs की सरणी को मार्शल कर रहे हैं), तो आपको वास्तव में कुछ पोर्टेबल का उपयोग करना चाहिए।
FFI cookbook के अनुसार, आप को परिभाषित कर सकते
#let alignment t = "%lu", (unsigned long)offsetof(struct {char x__; t (y__); }, y__)
जो तब
instance Storable Struct where
alignment _ = #{alignment my_struct}
sizeOf _ = #{size my_struct}
alignment
कीवर्ड के रूप में प्रयोग किया जाता है GHC> 7.2.1 में उपलब्ध होना चाहिए, ताकि आप की जरूरत नहीं होगी इसे अपने आप को बहुत नए ghc के साथ परिभाषित करने के लिए।
स्रोत
2011-12-02 10:00:21