C语言中 typedef常用方法

typedef 的作用是给已知的数据类型命名别名,因为有时使用别名更方便,语义更清晰。

1. 复杂的数据类型名称简化

typedef 的典型应用就是可以用一个较为简短的别名去表示一个复杂数据类型 。例如,如果程序需要一个如下形式的函数指针类型

void (*)(int, int);

并且程序中还需要定义较多这种类型的指针变量,那么每定义一个变量就写一遍这个类型,不仅麻烦而且还容易出错,所以关键字 typedef 为它定义一个简短的别名就会好得多,例如如下定义:

typedef void (*PFON)(int, int);

这样再定义一个void (*)(int, int)类型的函数指针变量function的语句便是:

PFON function;

显然,现在比原来清楚多了。

2.用typedef 定义与平台无关的数据类型

众所周知,不同的程序运行平台,它们所支持的数据类型会有少许区别,如果不采取措施,程序的跨平台应用就会很困难。
例如A平台64为数据类型为 long double,而B平台的64为数据类型为double,那么基于A平台开发的程序就不能在B平台运行。
对于上述问题,在程序设计时,凡是64为数据的定义都是用一个别名REAL表示,如果希望程序运行于A平台,则在程序代码之前作如下声明:

typedef long double REAL;

同理,如果希望程序运行于B平台,则在程序代码之前作如下声明:

typedef double REAL;

因此,当跨平台时,只需修改typedef本身就行,不需对其他源码做任何修改。

3.增强代码可读性

在程序设计中,经常会出现不同用途的数据属于同一种数据类型的情况,由于数据类型的标识不含有用途的信息,因此当程序规模特别大时,程序的可读性会变得非常差。此时最好为这种数据类型声明多个别名,而且在选择别名的标识时使之带有用途的信息。例如:

typedef int AGE;      // 年龄
typedef int SIZE;     // 尺寸
typedef int NUM;      // 数量
typedef int WITH;     // 宽度
typedef int FIGH;     // 高度

4.避免错误

定义指针变量时要使用符号“*”,但这个符号可能会使人们产生误解。例如下面的定义:

int *pa, pb;   // 定义一个整型指针,一个整型变量
int *pa, *pb;  // 定义两个整型指针

可能会将定义两个整型指针写成第一种情况,为了避免上述问题的发生,使用typedef为int*这个类型定义一个别名。如下:

typedef int * PINT;

在这个定义之后,再定义两个整型指针就可以写成如下形式:

PINT pa, pb;
  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值