如何求出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 请按任意键继续. . . */
相关文章推荐
- 如何计算结构体大小和结构体中成员的内存偏移
- C语言之struct大小、首地址与内存对齐—由结构体成员地址得到结构体首地址
- C语言中如何计算结构体的大小
- 如何算出结构体里的成员变量的偏移量
- 深入理解C语言结构体成员变量内存分配
- java开发C语言解释器:结构体内存与成员变量的一致性
- 如何取得结构体成员相对于结构体的偏移量
- 内存对齐方式的总结 如何计算结构体所占内存的大小
- C语言结构体占用空间内存大小解析
- 内存对齐方式的总结 如何计算结构体所占内存的大小
- 结构体、类的成员变量、成员函数是如何分配内存的?
- C语言中sizeof求结构体大小(让你真正了解结构体成员在内存中的分布情况)
- C语言 结构体中的成员域偏移量
- C语言位域与结构体的内存大小
- 内存对齐时为什么结构体的最终大小需要是其最大成员大小的整数倍
- 如何计算一个结构体所占内存空间大小
- C语言结构体占用空间内存大小解析
- 如何计算C语言中结构体所占内存
- C语言中 不定义结构体变量求成员大小
- 如何计算结构体所占内存大小