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