3.4 本章小结

本章先对传统C语言教材中提及的main函数入口论提出了置疑,以执行文件的反汇编代码为依据,提出了“应用程序入口”和“语法规定的用户入口”这两个概念,并且分析了VC++在用户入口前的部分行为。虽然这里是以对main入口的分析为主,但是其他入口的行为基本一致,各个VC版本的原理也基本相同,少许变动,读者可以尝试针对其他VC版本的应用程序入口进行练习,亲自分析一下。值得一提的是,从Visual Studio 2003(VC7.0)开始,微软加入了防止缓冲溢出的编译选项:/GS,编译器会在每个函数的栈内分配一个随机标记,而这个随机标记的种子数由应用程序入口的代码负责初始化,后面的章节会详细讨论这个知识点。