天天看点

c语言中的自定义数据类型,C语言自定义数据类型

1 stuct:结构体 元素之间的和

顺序是有要求的,顺序的不同也会导致最后结构体的大小不同

struct myabc{

unsigned int a;

unsigned int b;

unsigned int c;

};

sturct myabc mybuf;

2,union 公体 公用起始地址的一段内容

unnion myabc{

char a;

int    b;

};

unnion myabc  abc;

3 enum

#define a (0)

#define b (1)

#define c (2)

enum abc{

a,b,c

};

ps:1,enum内的a,b,c就和define定义宏是一样的

2,abc可不要,只是一个别名,无意义。只是在使用的时候需要加上  enum abc myabc;

3,enum 不像结构体,内存由元素内存叠加,而是等于内部要用到的元素的内存

printf("%d",b);

printf("%d",abc.b);    会发生报错。myabc只是enum 的别名,例如enum abc = int

4,typedef:数据类型的别名

typedef int type_Int;

type_Int a = 20;

typedef enum workday

{

saturday,

sunday = 0,

monday,

tuesday,

wednesday,

thursday,

friday

} workday; //此处的workday为枚举型enum workday的(typedef)别名