C++是一种编译型语言。顾名思义,要想运行一段C++程序,需要首先用编译器把源文件转换成对象文件,然后再用连接器把这些对象文件组合生成可执行文件。一个C++程序通常包含许多源代码文件。
一个可执行程序适用于一种特定的硬件/系统组合,是不可移植的。例如,可执行程序无法从Mac移植到Windows PC。当我们谈论C++程序的可移植性时,通常是指源代码的可移植性。也就是说,同一份源代码可以在不同系统上成功编译并运行。
ISO的C++标准定义了两种实体:
- 核心语言功能,比如内置类型(如char和int)和循环语句
- 标准库组件,比如容器(vector和map)和I/O操作
每个C++实现都会提供标准库组件,其实它们也是非常普通的C++代码。换句话说,C++标准库可以用C++语言本身实现(仅在实现线程上下文切换这样的功能时才使用少量机器代码)。这意味着C++在面对绝对绝大多数要求较高的系统编程任务时高效且有足够的表达能力。
C++是一种静态类型语言,这意味着编译器在处理任何实体(如对象、值、名称和表达式)时,都必须清楚它的类型。对象的类型决定了能在该对象上执行哪些操作。
浅谈Hello,World!
int main (){}//最小的C++程序
这段代码定义了一个名为main的函数,该函数不接受任何参数也不做任何实际工作
在C++中,花括号{}表示成组的意思,此例中它指示出函数体的首尾位置。
在每个C++程序中有且只有一个名为main()的全局函数,在执行一个程序时首先执行该函数。如果main()返回一个int值,则这个值将作为程序给系统的返回值。如果main()没有返回任何值,则系统也将收到一个表示程序成功完成的值。来自main()的非零返回值表示程序执行失败。并非所有操作系统和执行环境都会用到这个返回值:基于Linux/Unix的环境通常会用到,而基于Windows的和环境一般不会用到。