您的位置:首页 > 编程语言 > C语言/C++

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

2014-10-13 11:42 281 查看
#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): 4
sizeof(b): 1
sizeof(c): 1
sizeof(d): 4
sizeof(e): 1
offset(a): 0
offset(b): 4
offset(c): 5
offset(d): 8
offset(e): 12
请按任意键继续. . .
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: