C offsetof() Macro 함수
offsetof() Macro 함수를 분석한다.
1. offsetof()
| |
offsetof() Macro 함수는 Struct를 구성하는 Member 변수의 Memory Offset을 구하는 함수이다. [Code 1]은 offsetof() Macro 함수를 나타내고 있다. offsetof() Macro 함수는 다음과 같이 동작한다.
(TYPE *)0: 주소는 0이고 이 주소는TYPE구조체의 포인터이다.&((TYPE *)0)->MEMBER:MEMBER의 Offset을 구한다.((sizet) &((TYPE *)0)->MEMBER): 구한 Offset을sizet로 Type Casting한다.
2. 예제
| |
a : 0
b : 4
c : 8
d : 12
e : 20offsetof() Macro 함수를 통해서 offset Struct의 각 Member 변수의 Memory Offset을 확인할 수 있다.