类型定义
- 使用的关键字是
typedef
; - 格式:
typedef int Bool;
; - 效果:编译器将该类型加入其可识别的类型名列表中;
- 优点:提高程序的可读性和可移植性、方便程序修改等;
- 比较宏macro和类型定义type definition
格式
typedef int Bool;
注解:
- 在类型定义中,类型名是在最后定义的。
- 使用的是首字母大写的Bool,这是一些C程序员的习惯。
作用
使用type def
来定义Bool会导致编译器将Bool类型加入其能识别的类型名列表中。
使用type def
来定义Bool后,跟内置类型名一样,Bool可被用在变量声明,类型转换表达式,及其他地方。比如:
Bool flag;//等价于 int flag
优点
- 类型定义可使一个程序更容易理解。
- 类型定义可使一个程序修改起来更容易。
- 类型定义可提高一个程序的可移植性。
例1 假设使用变量cash_in和cash_out来存储美元量。
先声明Dollars为
typedef float Dollars;
然后声明:
Dollars cash_in, cash_out;
比
float cash_in, cash_out;
更有实际意义。
例2 后面我们要修改Dollars为double,仅需修改类型定义行,声明为Dollar类型变量的地方就不用修改。
typedef double Dollars;
例3 如果i是一个int变量,则虽然赋值语句
i = 100000;
在32位机器上运行正常,但在16位的机器上就运行失败(2^15-1=32767)。
此时,可考虑使用typedef
来定义整数类型。
例4 假设我们正在编写一个程序,该程序需要变量来存储产量,其中产量的数值范围为0-5000。
方法一:使用long来定义该变量;
方法二:使用int定义该变量;
方法三:使用typedef来定义产量类型
typedef int Quantity;
使用Quantity类型来声明变量:
Quantity q;
当移植到较短整数机器上时,只需修改产量的类型定义即可:
typedef long Quantity;
例5 C语言库使用typedef
来为那些因C语言实现不同而改变的类型来创建类型名,比如_t
、ptrdiff_t
、size_t
、wchar_t
等,可参考头文件<stdint.h>
typedef long int ptrdiff_t;
typedef unsigned long int size_t;
typedef int wchar_t;
网友评论