c语言程序总是从main函数开始执行吗?

TX 2011-06-10 08:33:42
答案是否定的,具体原因请高手们指教。
...全文
6450 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
SURE_bd 2011-08-14
  • 打赏
  • 举报
回复
只是一个符号而已。。。。
飞流 2011-06-11
  • 打赏
  • 举报
回复
学习了
苍蝇①号 2011-06-11
  • 打赏
  • 举报
回复
汇编连接的时候指定入口点
wangw89 2011-06-11
  • 打赏
  • 举报
回复
太高深了,学习了
sbdt123 2011-06-11
  • 打赏
  • 举报
回复
还真没考虑过这个问题
aixueVC 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huiguixian 的回复:]
编译器在编译的时候把你的程序开始执行的地址设为main函数的地址,汇编中可以自由的通过end伪指令制定。
在vs中给你可以通过这么设置:
项目->属性->配置属性->连接器->高级->入口点,改为你想做入口点的函数名
比如我有代码:
void print()
{
printf("hello world\n");
}
你就可以点击编辑 填写 print就可以了,他就从print开……
[/Quote]
学习了,呵呵
yyq_cadn 2011-06-11
  • 打赏
  • 举报
回复
可以指定入口啊,C语言那么高深,怎么会受限制
enyblock 2011-06-11
  • 打赏
  • 举报
回复
学习一下
lwblwblwblwb 2011-06-11
  • 打赏
  • 举报
回复
唉,我原本一直是这样认为的,没想到这么复杂。受教!
AnYidan 2011-06-11
  • 打赏
  • 举报
回复
英文单词 default --- 中文翻译"缺省,默认"
  • 打赏
  • 举报
回复
学习下,
之前只是知道有个接口可以改变,却不清楚是什么回事!
  • 打赏
  • 举报
回复
比如在预编译器执行的东西就在main之前
东莞某某某 2011-06-10
  • 打赏
  • 举报
回复 3
程序最终生成的exe执行时,开始执行的是mainCRTStartup(或 wmainCRTStartup......以及其他)函数之一,而不是我们程序所写的main或WinMain等。连接器为什么要这样做?因为我们写的程序必须要使用到各种各样的运行时库函数才能正常工作,所有在执行我们自己写程序之前必须要先准备好所需要的一切库,之所以要连接它们是因为他们肩负着很重要的使命,就是初始化好运行时库,准备我们的程序执行时调用。


我们可以使用连接器的链接选择来设置我们的函数入口点,但是最好不要这样做,如果我们重新设置入口点函数,则必须要在入口点函数中自己写上有关的初始化工作,所以最好用默认的入口点函数。

修改入口点方法:proerties->Linker->Advanced->EntryPoint

如果函数与连接器的SubSystem的属性要一致的:

proerties->Linker->System->SubSystem



如果未指定 /DLL 或 /SUBSYSTEM 选项,则链接器将根据是否定义了 main 或 WinMain 来选择子系统和入口点。 函数 main、WinMain 和 DllMain 是三种用户定义的入口点形式。

通过上面的分析知道,在微软系统中原来操作系统中的加载器与连接器之间是有协议的,要不然在加载运行程序时不可能成功的,比如你将windows程序放到apple系统上运行,就会无法运行,因为apple的加载程序根本不知道加载windows的exe的协议。
小小攻城师 2011-06-10
  • 打赏
  • 举报
回复
编译器在编译的时候把你的程序开始执行的地址设为main函数的地址,汇编中可以自由的通过end伪指令制定。
在vs中给你可以通过这么设置:
项目->属性->配置属性->连接器->高级->入口点,改为你想做入口点的函数名
比如我有代码:
void print()
{
printf("hello world\n");
}
你就可以点击编辑 填写 print就可以了,他就从print开始执行,而不是main

制定入口地址是编译器做的,默认。
bluesky12312388 2011-06-10
  • 打赏
  • 举报
回复
   最基本的系统组件要不要加载?
C语言运行时要不要加载?
自定义程序入口可以不可以?

蓝染忽右介 2011-06-10
  • 打赏
  • 举报
回复
全局变量!!!
就想叫yoko 2011-06-10
  • 打赏
  • 举报
回复
可以自定义程序入口点
还可以下面这样
http://blog.csdn.net/solosure/archive/2011/01/16/6144954.aspx
c_losed 2011-06-10
  • 打赏
  • 举报
回复
恩 可以指定入口的

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧