标签:默认 编译 取值 问题 优点 整数 fine list 有符号数
结构体
结构是一些值的集合,这些值被称为成员变量,结构的每个成员可以是不同类型的变量。
结构体的声明:
struct stu
{
member-list;
}variable-list;
例如描述一个学生:
struct stu
{
char name[20];
int age;
char tele[13];
char addr[20];
};
匿名结构体类型:
struct
{
char name[20];
int age;
char tele[13];
char addr[20];
}x;
struct
{
char name[20];
int age;
char tele[13];
char addr[20];
}name[20],p;
// p=&x 合法吗
//编译器会把上面的两个声明当成不同的两个类型,所以是非法的。
结构体的自引用:
struct stu
{
int data;
struct stu next;
};
结构体内存对齐:
计算结构体的大小:
首先得掌握结构体的对齐规则:
当一个结构包含两个位段,第二个位段成员比较大,无法容纳于第一个位段剩余的位时,是舍弃剩余的位还是利用,这是不确定的。
总结:
跟结构相比,位段可以达到同样的效果,但是可以很好的节省空间,但有跨平台的问题存在。
3.枚举
枚举类型定义
enum Day
{
Mon,
Tues,
Wed,
Thur,
Fri,
Sat,
Sun
};
这些可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候对其复制。
enum Color//颜色
{
RED=1,
GREEN=2,
BLUE=3
};
枚举的优点
标签:默认 编译 取值 问题 优点 整数 fine list 有符号数
原文地址:https://blog.51cto.com/14736002/2491476