宏在程序的编译阶段会进行替换,所以宏函数的本质仍然是一个表达式,例如:
结构体内成员相对于结构体起始地址偏移量:
#define offsetOf(structName, memName)\
(int)&(((structName*)0->memName))
宏在程序的编译阶段会进行替换,所以宏函数的本质仍然是一个表达式,例如:
结构体内成员相对于结构体起始地址偏移量:
#define offsetOf(structName, memName)\
(int)&(((structName*)0->memName))