Bildirim
offsetof(type, member); (Makro)
Açıklama
Fonksiyonel yapıda olan bu makro, bir yapı veya bileşim veri türü içinde yer alan değişkenin offset adres değerini size_t türünde bir sabit tamsayı olarak geri döndürür.
Parametreler
type: Bir yapı veya bileşimi gösteren veri türüdür.
member: Type parametresinde gösterilen yapı veya bileşime ait bir değişkeni gösterir.
Dönüş değeri
Type parametresinde yer alan yapı veya bileşime ait olup member parametresi ile gösterilen değişkenin offset adres değeri geri döndürülür.
Örnek
#include <stdio.h>
#include <stddef.h>
struct personel {
char adi[20];
char soyadi[20];
int yasi;
};
int main (void)
{
printf ("adi değişken değerinin offsetof adresi: %d\n",(int)offsetof(struct personel, adi));
printf ("soyadi değişken değerinin offsetof adresi: %d\n",(int)offsetof(struct personel, soyadi));
printf ("yasi değişken değerinin offsetof adresi: %d",(int)offsetof(struct personel, yasi));
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
adi değişken değerinin offset adresi: 0 soyadi değişken değerinin offset adresi: 20 yasi değişken değerinin offset adresi: 40
Yukarıdaki program, offsetof() fonksiyon makrosunu kullanarak 3 elemanlı bir yapı içindeki değişkenlerin offset adres değerlerini sırasıyla ekrana yazar.