如何求出C语言结构体中各个成员的大小及内存偏移量

来源:互联网 发布:冒险岛夜光法师v矩阵 编辑:程序博客网 时间:2024/04/30 02:22
#include <stdio.h>#include <stddef.h>struct Data{int a;char b;char c;int d;char e;};        int main(void){printf("sizeof(a): %d\n",sizeof(((Data*)0)->a));printf("sizeof(b): %d\n",sizeof(((Data*)0)->b));printf("sizeof(c): %d\n",sizeof(((Data*)0)->c));printf("sizeof(d): %d\n",sizeof(((Data*)0)->d));printf("sizeof(e): %d\n",sizeof(((Data*)0)->e));printf("offset(a): %d\n",offsetof(Data,a));printf("offset(b): %d\n",offsetof(Data,b));printf("offset(c): %d\n",offsetof(Data,c));printf("offset(d): %d\n",offsetof(Data,d));printf("offset(e): %d\n",offsetof(Data,e));        return (0);}/* output *//*sizeof(a): 4sizeof(b): 1sizeof(c): 1sizeof(d): 4sizeof(e): 1offset(a): 0offset(b): 4offset(c): 5offset(d): 8offset(e): 12请按任意键继续. . .*/

0 0