为什么C程序一定要从main开始执行???
2008-02-23 12:03
417 查看
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);
}
程序的入口点记录在可执行文件中的一个数据,该数据标明程序从哪个位置开始执行,这个数据是连接程序的时候由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);
}
相关文章推荐
- 为什么C程序一定要从main开始执行???
- 为什么执行JAVA程序时,会出现Exception in thread"main"java.lang.NoClassDefFoundError的错?
- 为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError
- 程序执行正确, 但退出时崩溃在main() 最后一个语句之后。为什么会这样?
- 程序是从main开始执行,最后main返回就结束了吗?
- C++ 程序不一定从 main 处开始执行
- 为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError的错?...
- C++ 程序不一定从 main 处开始执行
- 为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError的错
- 读“为什么c程序要从main函数开始执行”
- 为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError的错?...
- Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。
- 调用了bindService()之后,程序执行了Service里的onBind(),但是为什么不执行ServiceConnection对象接口onServiceConnected()呢?
- linux中为什么已经是root用户仍不能执行程序
- 程序真的是从main开始的吗?
- mini2440裸机程序时ADS调试开始全速运行不进main断点问题
- vfp 的主文件MAIN.PRG编译成.EXE可执行文件后,开始运行正常,几天后,不能运行?
- [ Python ] python 从哪开始执行 之 main 函数
- 程序为什么不执行?
- 【转载】为什么每个C程序都需要一个叫做main的函数