C++从入门到精通(第6版)
上QQ阅读APP看书,第一时间看更新

1.2 认识C++程序代码

1.2.1 C++程序代码的组成

C++程序代码由宏定义、预编译指令、主函数、自定义函数、注释等部分组成,如图1.1所示。

图1.1 C++语言典型代码

上述代码段虽然简短,却涉及头文件引用、函数作用空间、库函数调用、赋值运算、关系判断、流输出等C++概念。这些概念之间通过一定的规则排列在一起,编译器正是根据这些规则,才能将代码编译成能够在机器上执行的应用程序。本书将对上述概念进行详细的讲解,使大家深入理解C++的编程规范,能够使用C++开发出高效、稳定的应用程序。

1.2.2 从源代码到可执行程序

1.认识编译器

我们平时所说的程序,一般指双击后就可以直接运行的程序,这样的程序又称为可执行程序。Windows系统下,可执行程序的后缀一般为.exe。

可执行程序的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,CPU可以直接识别。但我们使用C、C++、Java、Python等高级语言编写的程序(又称为源代码),对于开发人员来说更易理解,但CPU却无法识别(CPU只认识几百个二进制形式的指令)。这时就需要一个工具,将这些源代码转换成CPU能够识别的二进制指令,即将其“翻译”成.exe可执行程序。该工具就称为编译器(compiler),这个翻译过程就称为编译(compile)。

C/C++编译器有很多种,不同的操作系统下通常使用不同的编译器。例如,Windows平台下常用微软编译器(cl.exr),它被集成在Visual Studio或Visual C++中,一般不单独使用;Linux平台下常用GUN组织开发的GCC;Mac平台下常用LLVM/Clang,它被集成在Xcode中。

开发者编写的代码语法正确与否,由编译器说了算。哪怕有一点小小的错误,也无法通过编译。而且编译器会给出对应的错误提示,以便于开发者修改源代码。

2.从源代码到可执行程序

开发者编写的C++源代码生成.exe可执行程序的过程如图1.2所示。

图1.2 从C++源代码到可执行程序

简而言之,用户开发C++程序的过程,可以简化为编辑、编译、连接、运行4个步骤。

(1)编辑。编辑就是在任一款C++开发工具中输入代码,然后将其保存为.cpp源文件的过程。例如,编辑图1.1中代码,并将其保存为Sample.cpp源文件。

(2)编译。编译就是将代码源文件(.cpp文件)编译成目标文件(.obj文件)的过程。例如,编写好代码后,在任一款C++开发工具中单击“编译”按钮,系统将自动对代码进行编译,得到Sample.obj文件,如图1.3所示。

(3)连接。连接是将编译后的目标文件连接生成可执行程序的过程,如将Sample.obj和lib库文件连接成Sample.exe可执行程序(lib库是编译好的提供给开发者使用的目标模块)。在有多个源文件的工程中,例如有Sample1.cpp、Sample2.cpp、Sample3.cpp,会编译成多个目标模块Sample1.obj、Sample2.obj、Sample3.obj,链接器会将程序涉及的目标模块连接成可执行程序,如图1.4所示。

图1.3 编译文件过程

图1.4 连接过程

(4)运行。运行是执行.exe可执行程序的过程,执行程序后可得到程序运行结果。