第25章 开发跨平台和跨语言的应用程序
本章内容
如何编写在多个平台上运行的代码
如何混合使用不同的编程(www.cppentry.com)语言
C++(www.cppentry.com)程序可以编译为运行在不同的计算平台上,这个语言的定义严格,确保了在一个平台上用C++(www.cppentry.com)编程(www.cppentry.com)非常类似于在另一个平台上用C++(www.cppentry.com)编程(www.cppentry.com)。然而,尽管语言是标准化的,但是在编写专业水准的C++(www.cppentry.com)程序时仍然需要考虑平台的差异。即使开发限定于特定平台,编译器之间微小的差别也会引发编程(www.cppentry.com)中令人感到头疼的问题。本章将深入研究多平台和多编程(www.cppentry.com)语言编程(www.cppentry.com)的复杂性。
本章第一部分考察了C++(www.cppentry.com)程序员会遇到的与平台相关的问题。一个平台是构成开发环境和运行时系统的所有细节的集合。例如,您的平台可能是运行在Windows 7上的Microsoft Visual C++(www.cppentry.com) 2010编译器,其中处理器为Intel Core i7处理器。另外,您的平台也可能是运行在Linux上的GCC 4.6编译器,其中处理器为PowerPC。这些平台都能够编译和运行C++(www.cppentry.com)程序,但它们之间存在显著差异。
本章的第二部分探讨C++(www.cppentry.com)可以如何与其他编程(www.cppentry.com)语言交互。尽管C++(www.cppentry.com)是一个通用的编程(www.cppentry.com)语言,但是并不一定适合于所有任务。通过各种机制,可将C++(www.cppentry.com)和其他语言集成在一起,以便更好地满足自己的需要。
25.1 跨平台开发
因为一些原因,C++(www.cppentry.com)语言会遇到平台的问题。尽管C++(www.cppentry.com)是一个高层次的语言,但是C++(www.cppentry.com)的定义包括了低层次的实现细节。例如,C++(www.cppentry.com)数组定义为存在于连续的内存块中。由于并不是所有系统都采用同样的方式安排和管理内存,所以这样一个特定的实现细节使得这个语言暴露于不利的情况。C++(www.cppentry.com)还面临一个挑战:提供了一个标准的语言和一个标准的库,但是没有一个标准的实现。不同C++(www.cppentry.com)编译器和库的提供商对规范理解的不同使得一个系统到另一个系统的迁移变得困难。最后,C++(www.cppentry.com)对于语言提供什么作为标准具有选择性。尽管存在一个标准库,但是复杂程序往往需要采用语言或标准库没有提供的功能。这些功能一般来自第三方库或平台,而且可能差别巨大。