struct a{ struct T b;#define k b.k#define m b.m}data[10]; 这样在a中,就不需要data[i].a.b.k 这种啰嗦的方式调用k,data[i].a.k 就可以。 这里宏的作用是替换 a.k 为 a.b.k ,替换 a.m 为 a.b.m。