08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

Standart offsetof Makrosu<br />

Bu makro stddef.h başlık dosyası içinde tanımlanmıştır. Makronun iki parametresi vardır.<br />

Birinci parametreye bir yapı tür ismi, ikinci parametreye yapının bir elemanı verilir.<br />

Makronun açılması sonucu oluşan değişmez ifadesinin değeri, bir yapı elemanının yapı<br />

nesnesi içindeki konumunu gösteren offset değeridir. Yapının ilk elemanı için bu değer<br />

0'dır.<br />

Aşağıdaki örneği inceleyin:<br />

#include <br />

#include <br />

struct Date {<br />

int day, mon, year;<br />

};<br />

int main()<br />

{<br />

printf("%d\n", offsetof(struct Date, day));<br />

printf("%d\n", offsetof(struct Date, mon));<br />

printf("%d\n", offsetof(struct Date, year));<br />

}<br />

return 0;<br />

offsetof makrosu derleyicilerin çoğunda aşağıdaki gibi tanımlanır:<br />

#define offsetof(type, member)<br />

((size_t)&((type *)0)member)<br />

493

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!