有没有办法在编译时找到结构成员的偏移量?我希望创建一个包含结构成员偏移量的常量.在以下代码中,offsetof()宏在第一个printf语句中起作用.但是,在第10行中使用声明ofs会产生错误:
“Cannot resolve ‘->’ operator as a constant expression”.
这样做还有其他方法吗?
struct MyStruct { unsigned long lw; unsigned char c[5]; int i; int j; unsigned long last; }; const int ofs = offsetof(struct MyStruct,i); // This line in error int main(void) { printf("Offset of c = %d.\n",offsetof(struct MyStruct,c) ); printf("Offset of i = %d.\n",ofs ); return 0; }