在什么情况下main函数是可以改成其它名字的?

xtra 2010-10-20 01:40:45
C语言里。问问是否可以,如果可以在什么情况下可以这么做。有无例子。
...全文
2032 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jihen 2010-10-21
  • 打赏
  • 举报
回复
你自己宏定义一下不就好了。。换汤不换药,还不如来个简单的方法
#define start main
月中蓝 2010-10-21
  • 打赏
  • 举报
回复
VS里面可以直接设置程序入口点的
dream17953 2010-10-21
  • 打赏
  • 举报
回复
main是编译器默认的主函数名字,函数入口要用,如果编译器允许重新设置,也是可以的。
hicaru000000 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xtra 的回复:]

引用 4 楼 hicaru00000 的回复:

说仔细点吧。

在ARM启动代码中需初始化向量列表,如下:

__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Han……

……
[/Quote]

windows下我还真不知道,我从事的是嵌入式工作,C++,java只是略懂,没有深入下去。

你可以试试看修改一下编程环境的一些代码。
xspace_time 2010-10-20
  • 打赏
  • 举报
回复
main()是一个参考点,为了便于编译器识别,就规定了程序应该从mian开始,如果在最开始定义了变量,而从最后一个函数开始编译执行,如果编译器没有自动寻找功能或者对程序的的识别不够智能就会导致无法找到地址的情况
xtra 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hicaru00000 的回复:]

说仔细点吧。

在ARM启动代码中需初始化向量列表,如下:

__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Han……
[/Quote]
Windows下如何改呢?比如我现在有个helloworld的C程序。想要把main改成start。
wjb_yd 2010-10-20
  • 打赏
  • 举报
回复
把crtexe.c中的__tmainCRTStartup函数改掉。
赵4老师 2010-10-20
  • 打赏
  • 举报
回复
PC机开机时从FFFF:0000处开始以实模式运行
jsjs5200 2010-10-20
  • 打赏
  • 举报
回复
好像可以修改 启动函数~~~~~不过 没有尝试过。。。。
hicaru000000 2010-10-20
  • 打赏
  • 举报
回复
其实从main启动只是约定俗成的,

程序可以从任意函数启动。
小魔菇 2010-10-20
  • 打赏
  • 举报
回复
汇编中的启动是_start
可以调用C中的非main
hicaru000000 2010-10-20
  • 打赏
  • 举报
回复
说仔细点吧。

在ARM启动代码中需初始化向量列表,如下:

__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler

第一步初始化的是堆栈,第二步代码如下:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP

此处说明代码从main启动。
zrcvic 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hicaru00000 的回复:]你可以把启动代码改了,把从main()启动改成任一函数。[/Quote]
嗯。在启动代码里有一句(汇编):
call main
hicaru000000 2010-10-20
  • 打赏
  • 举报
回复
你可以把启动代码改了,把从main()启动改成任一函数。
某某9 2010-10-20
  • 打赏
  • 举报
回复
C语言里,没见过
windows编程里有个winmain

70,014

社区成员

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

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