读书人

万恶的typedef!该如何处理

发布时间: 2012-03-23 12:06:21 作者: rapoo

万恶的typedef!!
刚学C的时候,觉得typedef这东西真不错!声明一个struct可以不带struct写程序,多方便!现在用VC写程序,发现里面typedef的类型漫天飞!一跟踪发现原来是char*等等!发现微软的程序员非常喜欢typedef,一个结构可以typedef出N个类型,实在是让人无法忍受!

[解决办法]
Windows下绝大多数的typedef都是为了跨平台考虑的。就像是taodm说的,之所以typedef就是说明你不该知道它的真正类型。

比如,一个handle在Win16下是16位的,Win32下是32位的,Win64下可能又是64位的。如果使用基本类型的话,那么所有的程序在不同平台下都要去该这些数据类型。难道不把人累死

还有,即使基本类型相同,数据可能代表的东西是完全不同的。如果你只看到long,你会知道他是一个Window handle,DC handle还是Event?这些数据在未来的平台上可能拥有不同的基本类型,到时候你的程序不是只有崩溃?
[解决办法]
typedef是为了增加可移植性的.很多的库都使用自定义的数据类型,不使用ansi数据类型.这样即使库做了修改,用户的源代码也不用修改,只需要重新编译即可.

读书人网 >C++

热点推荐