मैं कोड का एक टुकड़ा ढूंढ रहा हूं जो मुझे संरचना के एक उदाहरण आवंटित किए बिना संरचना के भीतर किसी क्षेत्र के ऑफसेट को बता सकता है।सी/सी ++ संरचना ऑफ़सेट
आईई: दी
struct mstct {
int myfield;
int myfield2;
};
मैं लिख सकते हैं:
mstct thing;
printf("offset %lu\n", (unsigned long)(&thing.myfield2 - &thing));
और मिल उत्पादन के लिए "ऑफसेट 4"। मैं इसे "mstct चीज़" घोषणा/आवंटित किए बिना कैसे कर सकता हूं?
मुझे पता है कि & < संरचना > संरचना के पहले क्षेत्र के पहले बाइट पर हमेशा इंगित नहीं करता है, मैं इसके बाद के लिए खाता कर सकता हूं।
मुझे जो कुछ चाहिए था, उतना नहीं, क्योंकि मेरे पास stddef.h नहीं है, लेकिन यह मेरे प्रश्न का उत्तर देता है: #define ऑफसेट (प्रकार, सदस्य) ((size_t) और ((प्रकार *) 0) -> सदस्य) – davenpcj
वाह - कोई stddef.h? जिज्ञासा से बाहर, क्या मैं पूछ सकता हूं कि आप क्या उपयोग कर रहे हैं? –
यह सी 99 मानक में है, इसलिए मैं एक नया संकलक प्राप्त करने का सुझाव दूंगा। – wnoise