第9章 移植性
宝石遗传下来的时间越长,它所携带的价值就越加贵重
--Lord Stanley
对于一段代码,它的可移植性越好,重用性就越好。在这一章里,我们将讨论影响C++(www.cppentry.com)代码可移植性的主要因素:对C++(www.cppentry.com)语言定义的状态改变、不确定的行为、实现性定义并且未经指定的行为、实现依赖性、模板实例化(也叫真体化)、运行时程序库和其他一些依赖于操作系统的因素。
9.1 有编写可移植代码的必要吗
对于许多编程(www.cppentry.com)项目,我们的关注点并不在于可移植性。然而,对于其他一些编程(www.cppentry.com)项目,移植性却是我们主要的目标。众所周知,并不是所有的代码都可以在所有的平台运行的。于是,对于某段代码,如果可以很容易地在某个平台运行,我们就称这段代码对这个平台是可移植的。另外,如果改变这段代码,使它可以在给定的平台运行;我们就把这种行为称为把这段代码移植到这个平台。
当我们设计代码的时候,我们总是(或者应该)对这段代码可以运行的平台的范围略有所知。我们可能只希望这段代码可以在我们开发小组程序员所使用的相似平台运行;我们也可能希望这段代码可以在所有使用Windows操作系统的平台上运行;我们甚至还希望这段代码可以在几个不同种类的、使用不同操作系统的硬件(如PDA、台式机等)上运行。