读“为什么c程序要从main函数开始执行”
2014-09-26 21:00
232 查看
main只是开发工具所规定的一个特殊函数名称而已。它既不是程序的入口,也不是必须要有的函数。
程序的入口点记录在可执行文件中的一个数据,该数据标明程序从哪个位置开始执行,这个数据是连接程序的时候由link.exe确定的,可以把程序的入口点 指定为任意函数,甚至可以自己编辑可执行文件修改程序的入口点。在默认情况下,link.exe会连接开发工具中带有的一个obj文件,并设置该obj中 的固定函数为程序的入口点,这个函数执行后会做一些初始化的事情,然后调用main函数。在执行连接的时候,如果不连接这个obj,程序中就可以没有 main函数。
//改变主程序的入口
#include <windows.h>
#pragma comment(linker,"/Entry:f__k")
void f__k()
{
MessageBox(NULL,"F**k","*uc*",MB_ICONINFORMATION);
}
后续补上自己的内容
以上是读这篇博客的心得,附上原博客地址
/article/2023872.html
程序的入口点记录在可执行文件中的一个数据,该数据标明程序从哪个位置开始执行,这个数据是连接程序的时候由link.exe确定的,可以把程序的入口点 指定为任意函数,甚至可以自己编辑可执行文件修改程序的入口点。在默认情况下,link.exe会连接开发工具中带有的一个obj文件,并设置该obj中 的固定函数为程序的入口点,这个函数执行后会做一些初始化的事情,然后调用main函数。在执行连接的时候,如果不连接这个obj,程序中就可以没有 main函数。
//改变主程序的入口
#include <windows.h>
#pragma comment(linker,"/Entry:f__k")
void f__k()
{
MessageBox(NULL,"F**k","*uc*",MB_ICONINFORMATION);
}
后续补上自己的内容
以上是读这篇博客的心得,附上原博客地址
/article/2023872.html
相关文章推荐
- 为什么C程序一定要从main开始执行???
- “C程序从main函数开始执行,在main函数结束”吗?
- 为什么C程序一定要从main开始执行???
- 线程,是不是打破了“程序是顺序执行“的真谛?如一个main函数中,顺序定义了二个线程,并启动,第一个线程还没执行完,第二个线程就开始执行了
- c 程序必须要从main函数开始执行么?
- c程序从main函数开始执行?
- Linux启动为什么没有先执行main函数
- 为什么程序开始用PUSH DS等
- linux当执行程序时,其main函数是如何被调用的
- 为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError的错?...
- 程序为什么不执行?
- C语言中如何在main函数开始前执行函数
- [VB.NET]点net写client程序传递参数给mssql存储过程insert,为什么要反复执行客户端代码才能成功insert,怎么才能使客户端插入记录操作变得稳定呢?
- main函数之前--真正的函数执行入口或开始
- 一个c程序在执行main函数之前和main之后都做了那些事情啊
- C语言中如何在main函数开始前执行函数
- 程序从片内地址0开始,但为什么链接地址又设0x30000000,那不就从0x30000000开始了,反汇编可以看到不是从0开始的
- 在自己的main函数中执行JUnit4的测试程序
- 如何让一段程序在main函数之前执行的
- 为什么x86 Linux程序起始地址是从0x08048000开始的?