现在的位置: 首页 > 综合 > 正文

main() 函数详解

2018年04月19日 ⁄ 综合 ⁄ 共 618字 ⁄ 字号 评论关闭

很早就想用心写一篇原创文章了,但一直苦于自己的水平太有限,怕写不好,写出来的东西对大家没有啥价值,所以一直未能动笔。 写得不周详或者有不正确的地方,希望大家一定指正。 期待大家留言交流。 

说到main()函数,相信大家都会非常的熟悉。我们平时在编写win32、甚至汇编程序的时候,免不了会使用的它。 为什么程序中不能缺少main()函数呢? 这是因为main()告诉了我们的启程在哪里启动。 他在汇编函数里面就是一个标识地址,所有的程序都有这样的一个标志地址。 当我们在双击我们的程序之后,系统就会帮我们去找这样的一个地址。 

那么问题来了。我们在启动我们的程序之后,它是如何找到main()并开始执行的呢? 中间的过程我查了很多资料,大概知道了是怎怎么回事,拿出来和大家一起分享。

  首先,我们来说点公认的东西,C/C++ 规定main()  函数是必须存在的, 它是我们的入口。 缺少main()函数,编译器无法链接出一个可执行文件, 程序的进程也就没法开始。 在程序连接的时候, 入口函数地址(C/C++就是main()函数)会被编译器写到exe里面的pe头里面,这样操作系统就可以找到入口函数并且调用程序了。 

实际上,在main()的前面还会有一些启动代码,这些代码由库提供, 帮助我们将程序载入内存。 程序被载入到内存之后,就是一个进程了。 操作系统根据优先级,让优先级别高的程序先运行。开始运行程序时, 会先寻找main()函数,找到之后才会开始运行其它程序。

抱歉!评论已关闭.