结构:具有不能类型值的一个集合 
联合:和结构类似,但是共享一个存储空间(每次只能存储一个成员) 
枚举:是一种整形类型
结构标记声明
struct part {
    int number;
    char name[256];
};
struct part part1;//不能去掉struct
//也可以像下面的方式声明变量
struct part {
    int number;
    char name[256];
}part1, part2;
使用结构类型的定义
//声明part类型的结构体
typedef struct {
    int number;
    char name[256];
}part;
part part1;//声明变量//打印结构体
void printf_part(struct part p) {
    printf("number is %d", p.number);
    printf("name is %s", p.name);
}struct part parts[100];//声明能装100个part类型变量的数组联合和结构体一样的使用,只是每个联合的变量公用一个存储空间,改变一个变量的值会变量其他变量的值。 
只是把struct换成union
声明:
enum flag {
    false = 0,
    true
};typedef enum {
    false,//枚举内的值会默认从0开始
    true
}flag;原文:http://blog.csdn.net/ttf1993/article/details/45461611