1.自定义数据类型(typedef)
C语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名字,比如:
typedef int Length;
使得Length成为int类型的别名
这样,Length这个名字就可以代替int出现在变量定义和参数声明的地方了:
Length a,b,len;
Length numbers[10];
2.Typedef
声明新的类型的名字
新的名字是某种类型的别名
改善了程序的可读性
typedef 后第一个出现的是原来的类型名字,第二个是新的名字
typedef long int64_t;//重载已有的类型名字 新名字的含义更清晰,具有可移植性
typedef struct ADate{
int month;
int day;
int year;
}Date;//简化了复杂的名字
int64_t i=10000000000;
Date d={9,1,2005};
3.union联合
选择:
成员是
一个int i还是
一个char c
sizeof(union……)=sizeof(每个成员)的最大值
union AnElt{
int i;
char c;
}elt1,elt2;
elt1.i=4;
elt2.c=‘a’;
elt2.i=0xDEADBEFF
对于union,它的任何成员变量所占据的空间,只有一份,所以叫做联合,大家联合起来使用同一个空间
通过i填一个值,再通过c填一个值进去的话,就把前面的值覆盖掉了,但i还是有值的
4.union的用处
typedef union{
int i;
char ch[sizeof(int)];
}CHI;
int main(int argc,char const *argv[])
{
CHI chi;
int i;
chi.i=1234;//0x04D2
for(i=0;i<sizeof(int);i++){
printf("%02hhX",chi.ch[i]);
//FFD2040000 x86小端机器,低位在前,一个数放在内存里的时候,它要把低的东西放在前面
//可以通过这种方式得到一个数字内部的各个字节
//比如,当我们要做文件操作的时候,当我们要把一个整数以二进制的形式写到一个文件里头去的时候
//这就是用来做读写的一个中间的没接
}
printf("\n");
return 0;
}