70,020
社区成员




#define offsetof(s,m) (size_t)&(((s *)0)->m)
在stddef.h中定义:
功能:取得数据结构s中成员m的偏移量:
不解?
(unsigned int) & 这个原理是什么?
#include <iostream>
using namespace std;
int main(void)
{
typedef struct
{
short b1;
int a1;
}ST1;
typedef struct
{
short b2;
int a2;
ST1 P1;
ST1 P2;
}ST2;
unsigned int offset;
offset = (unsigned int) &( ( (ST2*)0)->P1 );//offset = 8
cout << offset << "\n";
offset = (unsigned int) &( ( (ST2*)1)->P1 ) ;////offset = 9
cout << offset << "\n";
return 0;
}