用typedef来为类型起个别名,如“typedef long INDEX;”。给long这样的类型起别名主要目的不是简化程序的书写,它有两个用处:一是表明该类型的特殊作用,二是将来有可能要改变这种类型(比如提高精度),如果直接声明为long型则失去了程序的可惟护性——每一个变量的声明都要改动;而声明为INDEX则使维护程序变得十分简单——只要改一下typedef语句即可。
比如
typedef int datetype
然后下面有N个函数
都是类似这样的
代码语言:javascript复制datetype typeadd(datetype a, datetype b)
{
return a b;
}
datetype typediff(datetype a, datetype b)
{
return a - b;
}
datetype func1(datetype a, datetype b) {
datetype tmp;
tmp = typeadd(typediff(a,b), typediff(a,b));
return typeadd(tmp, tmp);
}
如果你没用datetype而是直接用的int 当你希望这些函数计算浮点数的时候,你就必须把所有代码里的所有int都换成float或者double
而且一旦有地方换漏了就很容易出错,丢失精度什么的
但是如果你用的是datetype,你希望这些函数计算浮点数的时候,只需要修改一句话,就是
把typedef int datetype改为typedef float datetype或者typedef double datetype
=========================================================================== typedef用法地址: https://baike.baidu.com/item/typedef/9558154?fr=aladdin