对于一段代码,它的移植性越好,重用性就越好!
可
可移植性优缺点
可移植性通常会和效率与实现的难易程度相互制约,具体地说,在一个或者多个平台上容易实现的可移植性代码通常都是低效的,通用既低效,专用才高效!这里就有一个矛盾,可移植性和高效率的矛盾问题,高效率一般可移植性就会差!
常会用
#indef XXXX
……………….
#else
…………………
#endif
条件编译是针对不同平台执行不同接口,好处就是高效。因为不同平台不同接口函数执行速度会有影响!
值得注意一点是,不同的C++编译器在支持一些高级结构或者特殊结构上是有区别的。
可移植性内存空间问题
对于可移植性代码而言,一个要特别关注的领域就是内存布局,主要指:对象的大小和排列方式、指针和地址操纵。许多C++程序员都可以把可执行程序的地址空间看作是连续的字节序列,设置为适当值的char*或void*的指针变量都可以取到这些地址。然而平台不是唯一,也存在不符合这种简单内存布局模式的平台。因此,对于依赖于这种布局模式的代码,对这些平台而言,就是不可移植性。
可移植的数据文件
主要是平台文件一次读取字节差别,有的平台支持一次可读入多字节,而有的平台只能读入一个字节,这句造成移植性差。最好的解决方案就是改写成一次只写或读一个字节。