【嵌入式C语言系列】关键字详解【typedef】

typedef用法

typedef工具是一个高级数据特性,利用typedef可以为某一类型自定义名称。这方面与#define类似,但是
两者有三处不同:

  1. 与#define不同,typedef创建的符号只受限于类型,不能用于值;
  2. tyedef由编译器解释,不是预处理器;
  3. 在其受限范围内,typedef比#define更灵活;

使用typdef时要记住,typedef并没有创建任何新类型,它只是为某个已有的类型增加了一个方便使用的标签。

假设要用BYTE表示1字节的数组,只需要像定义个char类型变量一样定义BYTE,然后再定义前面加上关键字typedef即可:

typedef unsigned char BYTE;

随后便可使用 BYTE 来定义变量:

BYTE x, y[10];

该定义的作用域取决于typedef定义所在的位置。如果定义在函数中,就具有局部作用域,受限于定义所在的函数。如果定义在函数外面,就具有文件作用域。

为现有类型创建一个名称,看起来是多此一举,但是它有时的确很有用。在前面的示例中,用BYTE代 替unsigned char表明你打算用BYTE类型的变量表示数字而不是字符。使用typedef还能提高程序的可移植性。

用typedef来命名一个结构体类型的时候,可以省略该结构的标签(struct):

typedef struct
{
	char name[50];
	unsigned int age;
	float score;
}student_info;

student_info student={“Bob”, 15, 90.5};

这样使用typedef定义的类型名会被翻译成:

struct {char name[50]; unsigned int age; float score;}
student = {“Bob”, 15, 90.5};

使用typedef的第二个原因是:tyedef常用于给复杂的类型命名,例如:
把pFunction声明为一个函数,该函数返回一个指针,该指针指向一个void型。

typedef void (*pFunction)(void);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值