在有些嵌入式例程中,我们经常能看到一些变量类型比如说u8,u16

而它的真正含义其实是unsigned char (u8),unsigned short(u16),开发人员利用这些 “别名” 减少写代码的工作量。
那么这个效果是如何实现的呢?
我们要介绍的C语言关键字是Typedef
Typedef在计算机编程语言中用来为已有的类型声明和定义简单的别名,区别于宏定义他本身是一种存储类的关键字,而不是像宏定义一样属于预编译语句。
用法也非常的简单typedef 类型名称 新类型名称 ,这样子就可以为已有的类型名称起别名使用。
用这种方式,我们就可以给我们的变量起别名,即便他的名字叫做阿猫阿狗也没有关系。
既然typedef是对已经存在的变量类型进行别名定义,那么我们之前有介绍过结构体C语言——结构体,讲过结构体可以算作我们认为定义的一种变量,因此,typedef自然可以应用到结构体之上,讲我们的结构体进行简单的取别名操作。

在我们使用回调函数的时候,通常会写如下语句,定义一个函数类型的指针,Function,其内容指向函数T1,之后可以直接调用Function来调用T1
void T1(int a)
{
printf("%d", a);
}
int main()
{
void(*Function)(int) = &T1;
Function(100);
}

但是这样子的定义就会有点冗长,我们可以利用typedef来简化这种定义
typedef void(*FunctionHandler)(int);
void T1(int a)
{
printf("%d", a);
}
int main()
{
FunctionHandler Function;
Function = &T1;
Function(100);
}
我们利用typedef定义创建出我们的"变量类型"FunctionHandler,之后我们创建相关类型的变量就可以使用FunctionHandler来定义我们的变量。


登录 或 注册 后才可以进行评论哦!
还没有评论,抢个沙发!