在修改别人的代码的过程中,发现很多人会把struct和struct的定义混淆,在这里主要是为了提醒自己Struct定义的规范性。
#include <stdio.h>
struct x{
int a;
char b;
};
typedef struct g{
int a;
char b;
}G;
int main()
{
int a;
char b;
int m = sizeof(a);
int n = sizeof(b);
printf("size of int is %d\n", m);
printf("size of char is %d\n", n);
int x = sizeof(x);
int y = sizeof(G);
printf("size of struct is %d\n", x);
printf("size of struct G is %d\n", y);
return 0;
}
运行的结果为:

在这里Struct G的大小为8是因为:字节对齐,说明Struct在默认情况下,就已经做了字节对齐。
本文通过一个C语言示例介绍了结构体及其typedef定义的区别,并解释了字节对齐的概念,展示了如何通过sizeof运算符来查看不同类型的内存占用情况。
830

被折叠的 条评论
为什么被折叠?



