本节书摘来自华章计算机《c++语言导学》一书中的第1章,第1.2节,[美] 本贾尼·斯特劳斯特卢普 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.2 程序
C++是一种编译型语言。顾名思义,要想运行一段C++程序,需要首先用编译器把源文件转换成目标文件,然后再用连接器把目标文件组合成可执行程序。一个C++程序通常包含多个源代码文件,简称为源文件(source file)。
一个可执行程序适用于一种特定的硬件/系统组合,不具可移植性。例如,Mac上的可执行程序无法直接移植到Windows PC。当我们谈论C++程序的可移植性时,通常是指源代码的可移植性。也就是说,同一份源代码可以在不同系统上成功编译并运行。
ISO的C++标准定义了两种实体:
- 核心语言特性(core language feature),比如内置类型(如char和int)以及循环(如for语句和while语句);
- 标准库组件(standard-library component),比如容器(如vector和map)以及I/O操作(如<<和getline())。
每个C++实现都提供标准库组件,它们其实也是非常普通的C++代码。换句话说,C++标准库可以用C++语言本身实现(仅在实现线程上下文切换这样的功能时才使用少量机器代码)。这就确保C++在面对绝大多数要求较高的系统编程任务时既有丰富的表达力,同时也足够高效。
C++是一种静态类型语言,意味着在使用任何实体(如对象、值、名称和表达式)时,编译器都必须清楚该实体的类型。对象的类型决定了能在该对象上执行的操作。