关于C程序的运行环境(初始化?)的问题.

YoziDream YoziDream 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
刚刚了解到C Runtime Library的一些知识,认识到通常以为的main不是真正的入口
而是由C Runtime调用的,runtime需要做一些初始化的工作。程序结束时要由runtime
来做些清理工作,应该可以(?)说runtime提供了C程序的运行环境吧?

我的问题是,
(1)如果是runtime提供了这个环境,runtime与操作系统的关系是什么呢?
不是说操作系统提供了程序运行的服务吗?
(2)runtime到底干了些什么,比如说初始化吧,看网上一些文章说做了一些
堆栈啊,堆啊的初始设置?我知道函数的参数是由堆栈来传递的,可是函数
编译好了以后不就是已经包含了使用堆栈的指令了吗?runtime设置堆栈设置些啥呢?
可以给解释一下初始化的那个runtime函数吗?现在还看不懂。
(3)x86下,C写成的程序,对寄存器使用有什么约定吗?我看“hello,world!"的反汇编代码
看到那些代码像天书一样,硬是和c程序对不上钩。我想是和不知道每一个寄存器被用来
干了解的缘故?

谢谢!
...全文
评论 14
收藏 已收藏
分享
返回顶部
YoziDream
C语言 70,039 成员 243,237 内容