2.1.5 程序的两大任务C++(www.cppentry.com)程序的执行过程
一旦生成可执行文件,就可以给操作系统下达指令让文件运行。操作系统接收到命令之后,首先要创建相应的进程并分配私有的进程空间,加载器负责把可执行文件的数据段和代码段映射到进程的虚拟内存空间中,并加载所链接到的库函数。然后,操作系统开始初始化所定义的全局变量,自动调用全局对象的构造函数。最后,才进入入口点函数,也就是_tmain()函数开始执行。
进入_tmain()函数后,程序会按照源代码制定的人生规划,一条语句一条语句地往下执行,一步一步地往下走。你一定还记得,我的源代码是这样的:
- int _tmain(int argc, _TCHAR* argv[])
- {
- // 在屏幕上显示“Hello World!”
- cout<<"Hello World!"<<endl;
-
- return 0;
- }
_tmain()函数有两个参数argc和argv,可以通过这两个参数给_tmain()函数传递一些信息,给我一些额外的吩咐,比如通过这两个参数告诉我应当在屏幕上显示什么内容等。在这里,暂时没有使用这两个参数。
进入_tmain()函数后,我遇到的第一条语句就是:
- cout<<"Hello World!"<<endl;
这条语句让我在DOS窗口中显示"Hello World!"这样一个字符串,于是开始控制DOS窗口,在其中显示这个字符串,完成人们交给我的任务。
接下来的一条语句是:
- return 0;
这条简短的语句宣告了我人生历程的结束。它表示整个_tmain()函数的结束。图2-7所示的是我短暂而光辉的一生!
|
| 图2-7 Hello World程序短暂而辉煌的一生 |