C语言 结构体大小计算
/*个人标签啥东东封尾机*/
参考:http://blog.sina.com.cn/s/blog_5f77c7270100dnoy.html
实际上,由于存储变量时地址对齐的要求,编译器在编译程序时会遵循两条原则:
结构体大小:相同类型的数据声明结束后,下一个成员的偏移必须为成员大小的整数倍。
eg:
typedef struct stu4
{
char c1;
char c2;
char c3;
int i;
}stu4;
typedef struct stu5
{
char c1;
char c2;
char c3;
char c4;
int i;
}stu4;
这两个结构体大小都为8(已验证)。
二、结构体大小必须是所有成员大小的整数倍。
vs2010
poC:在main.c中 如果按照如下声明就使用的话,包未声明的标示符错误。如果是typedef struct stu4{}stu4;形式正确。为毛?????
struct stu4
{
char c1;
char c2;
char c3;
int i;
};
----------------------------不为毛。
使用时如果没有typedef struct stu4{}stu4。。。。。。。。。的话,使用时必须在stu4前标示struct。
poC
20130913------------------------
C机构体中不可以有函数,包括析构函数。