Mam następujący problem/zagadnienie. Definiuję sobie typ
typedef struct{
int property1;
int property2;
gchar property3[20];
} MY_PROPERTIES;
Czy jestem w stanie wyliczyć sobie "offsety" (odległości od początku struktury) ? Tj. potrzebuję wiedzieć ile muszę dodać do wskaźnika pokazującego na początek struktury aby dobrać się do odpowiedniego elementu.
Jednym ze sposobów byłoby (na uzyskanie offsetu np. property2)
MY_PROPERTIES instance;
my_offset = (int) &instance - (int) &instance.property2;
Jednak tutaj mam od razu tworzoną instancję. Czy można to zrobić bez tego etapu?
Nie uśmiecha mi się także wyliczanie kolejnych offsetów za pomocą sizeof'owania wszystkich poprzednich elementów. Np. aby dobrać się do property3
my_offset = sizeof(MY_PROPERTIES.property1)+sizeof(MY_PROPERTIES.property2);
Takich elementów mogę mieć dużo, a zmiana kolejności czy dostawienie nowego-nie-na-końcu wymusza przepisanie takich wyliczeń.
Czy istnieje jakaś wygodniejsza metoda?