1 typedef自定义数据类型
typedef int intBS;
intBS就相当是int。
typedef用于声明新的数据类型的名字
- 新名字是某种类型的别名
- 改善程序的可读性,特别是结合结构使用是场景
typedef struct pAndq{
int p;
int q;
}qAp;
qAp = {1,2};
struct后面的名字可以省略。
#include <stdio.h>
typedef struct pAndQ {
int p;
int q;
}pAq;
typedef struct {
int p;
int q;
}qAp;
int main(int argc,char const *argv[])
{
pAq p1 = {1,2};
qAp p2 = {3,4};
printf("%d %d\n",p1.p,p1.q);
printf("%d %d\n",p2.p,p2.q);
return 0;
}

2 联合(union)
typedef union {
int i;
char ch[sizeof(int)];
} CHI;
联合里面的变量公用一块内存地址,当给i赋值或进行修改时ch的内存地址数据也会随之改变。
#include <stdio.h>
typedef struct {
char ch[5];
}qAp;
typedef union {
int i;
char ch[sizeof(int)];
} CHI;
int main(int argc,char const *argv[])
{
qAp h = {"ab"};
//qAp g = {"abcdef"}; //chao超出字符串长度
CHI c;
int i;
c.i = 10000;
for ( i=0;i<sizeof(int);i++ ){
printf("%02hhX",c.ch[i]);
}
printf("\n");
c.ch[1] = 'a';
printf("%d\n",c.i);
return 0;
}

应用场景
- 得到整数或者浮点数存储在内存地址的内部字节
- 当我们需要做文件操作的时候,比如想把一个整数以二进制的形式写入文件里面可以使用union当读写中间媒介
C语言类型定义与联合体详解
本文深入探讨了C语言中的typedef关键字如何用于自定义数据类型,提高代码可读性,以及联合体(union)的概念和应用。通过实例演示了如何使用typedef定义结构体和联合体,以及联合体中成员共享同一块内存的特点。
1881

被折叠的 条评论
为什么被折叠?



