https://zhidao.baidu.com/question/872076704318534212.html
用typedef來(lái)為類型起個(gè)別名,如“typedef long INDEX;”阅虫。給long這樣的類型起別名主要目的不是簡(jiǎn)化程序的書寫演闭,它有兩個(gè)用處:一是表明該類型的特殊作用,二是將來(lái)有可能要改變這種類型(比如提高精度)颓帝,如果直接聲明為long型則失去了程序的可惟護(hù)性——每一個(gè)變量的聲明都要改動(dòng)米碰;而聲明為INDEX則使維護(hù)程序變得十分簡(jiǎn)單——只要改一下typedef語(yǔ)句即可。
比如
typedef int datetype
然后下面有N個(gè)函數(shù)
都是類似這樣的
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);
}
如果你沒(méi)用datetype而是直接用的int
當(dāng)你希望這些函數(shù)計(jì)算浮點(diǎn)數(shù)的時(shí)候购城,你就必須把所有代碼里的所有int都換成float或者double
而且一旦有地方換漏了就很容易出錯(cuò)吕座,丟失精度什么的
但是如果你用的是datetype,你希望這些函數(shù)計(jì)算浮點(diǎn)數(shù)的時(shí)候瘪板,只需要修改一句話吴趴,就是
把typedef int datetype改為typedef float datetype或者typedef double datetype