gcc对main函数的作用

gcc对main函数的作用:

int main(int argc, char **argv)

__gccmain();

自己的代码;

return 0;

 1.main() 函数与__gccmain()

mips-elf-gcc -c  main.c 不连接库,当应用程序中包含了 main()函数,将会引起对 C 运行时库的初始化。该初始化是通过函数__gccmain()实现的,即在 main()函数入口处,编译器会首先调用__gccmain()函数,然后才是执行编写的代码。__gccmain()函数在 gcc 的标准库里面实现。当应用程序中没有包含 main()函数,将不会引起对 C 运行时库的初始化。这时,C 运行时库的很多功能在应用程序中是不能使用的。

在基础实验的课程里面,我们没有涉及到函数库的内容,因此,我们不打算在这里加入函数库的使用。因此,如果我们使用 main 函数作为应用程序的主函数,可以在源代码中加入一个空的__gccmain()函数(用 C 语言或者汇编语言均可)。

2. mips-elf-ld 时 main函数和crt1.o连接,同时连接库函数找__gccmain(),整个程序的入口点是crt1.o中提供的_start,它首先做一些初始化工作(以下称为启动例程,Startup Routine),然后调用C代码中提供的main函数。所以,以前我们说main函数是程序的入口点其实不准确,_start才是真正的入口点,而main函数是被_start调用的。

总上两点 main函数不可以在pmon的开始阶段

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值