被人问到这个问题,各种解决。
google一下,MFC中有一个OFFSET宏,就有这个功能。
写一下:
#define offsetof(structure, member) ((int)(&((structure *)0)->member))
eg:
#include <iostream>
using namespace std;
#include <stdio.h>
#define offsetof(structure, member) ((int)(&((structure *)0)->member))
struct test_struct
{
int a;
char b;
int aa[10];
char bb[2];
};
int main()
{
cout<<offsetof(struct test_struct, a)<<endl;
cout<<offsetof(struct test_struct, b)<<endl;
cout<<offsetof(struct test_struct, aa)<<endl;
cout<<offsetof(struct test_struct, bb)<<endl;
return 0;
}