C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!

Posted 嵌入式Linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!相关的知识,希望对你有一定的参考价值。

我们在刚写程序的时候,第一个都是 hello world,而在这里,完整的代码就是:



我们打眼一看,其实很简单,就是引入头文件,写一个主函数,然后输出一句话,但是当我们编译出来ELF的时候,我们使用工具readelf,去查看下这里面的FUNC,会发现多了很多方法。(gcc相关工具链,我经常用的是objdump )


C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!

如果你想知道这个过程都处理了什么,可以使用gcc -o hello hello.c -v,这里的-v,会输出过程信息,这里截一部分,大家看下


C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!


这块要学习,去GCC官方看下它的编译,链接参数。Makefile文件,可以使用 --just-print 进行调试。这里面的UND,代表的是未定义,未定义的这些方法,会在加载器加载的时候,补充进来。


我们这里使用 IDA 来解析下这个输出ELF,可以看到一个简单的信息。


C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!


这里的Interpreter,就是解析程序,crtstuff.c这个就是给我们的运行环境,做初始化。从这里我们就能看到,其实我们的一个简单的程序,也是五脏俱全的。

以上是关于C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!的主要内容,如果未能解决你的问题,请参考以下文章

MFC没有main函数也可以执行吗?急

c语言中在main函数之前会执行啥?

5Linux内核模块开发

c语言中在main函数之前会执行啥?

c语言 多文件多函数结构

C语言中strcpy的用法! 要举例哦!简单的哦!