Yapının bir örneğini ayırmadan bir yapı içindeki bir alanın ofsetini anlatabilecek bir kod parçası arıyorum.C/C++ Yapı ofseti
IE:
mstct thing;
printf("offset %lu\n", (unsigned long)(&thing.myfield2 - &thing));
Ve olsun çıkış için "4 offset":
struct mstct {
int myfield;
int myfield2;
};
ben yazabilirim verilen. Bunu "mstct şeyi" beyanı olmadan/bir tane tahsis etmeden nasıl yapabilirim?
& <struct> yapısının her zaman yapının ilk alanının ilk baytını göstermediğini biliyorum, bunu daha sonra açıklayabilirim.
Tam olarak istediğimden değil, çünkü stddef.h'im yok, ama şu soruyu yanıtlıyor: #define offsetof (TYPE, ÜYE) ((size_t) & ((TYPE *) 0) -> ÜYE) – davenpcj
Vay - hayır stddef.h? Sadece meraktan, ne kullandığını sorabilir miyim? –
C99 standardında, bu yüzden yeni bir derleyici almanızı öneriyorum. – wnoise