自定义数据类型--联合体、枚举、结构体

union  A   联合体:共用内存空间,空间大小为占用空间最大的元素空间大小

{

char c;

int i;

};

判断系统大小端

int endian()

{

union A  u_a;

u_a.i=1;

return u_a.c;

}

单个数据

小端 低位存放在低地址,高位存放在高地址)     大端(低位存放在高地址,高位存放在低地址)

                 0000 0001 0100 0000

结果:1:小端    0:大端


enum Item        枚举:自定义离散值

{ 默认

pen,               0

pencil=2,        2 //定义后面是逗号

ballpen,          3(2+1)

}

定义:enum Item  thing=pen;


无名枚举,定义常量

enum

{

SIZE=10,

};

函数中直接使用SIZE


struct          结构体:占用内存空间为结构体所有元素所占空间之和  注意4字节对齐

{

char a;

int b;

}TS;

struct s_a

{

int c;

int d[2];

};

定义: struct s_a  a;


自定义长度数组

struct  Array   

{

int len;

int array[]; //要在最后

};

struct Array *s_a=(struct Array*)malloc(sizeof(struct Array)+sizeof(int)*4);

s_a->len=4;

你可能感兴趣的:(C语言学习之旅,自定义数据类型)