C语言代码编译后是什么?


问个比较二的问题,C语言代码编译后是什么代码?记得以前看到说是机器码。可是如果是cpu能直接执行的代码那还要操作系统干嘛?岂不是不同平台的程序都能直接用了?
---------------------------
看了后面的争论那现在再补充下问题,就是C语言代码编译后的代码是能直接操作机器的代码还是调用操作系统API还是两者都有?我知道编译后的程序可以通过反汇编来生成汇编语言代码,汇编语言不就是直接操作机器的语言么?

c 编译

Selty 10 years, 1 month ago

总的来说,你的问题太大了,不好回答,而且就算详细解释了,你也不见得听得明白,我的建议是,你应该先找一些操作系统原理之类的教材学学,打好相关的基础,很多问题自然你就明白了。

之前的回答

这个问题应该在101新手区问。

不过可以简单说一下,操作系统的作用尽可能合理地管理和分配资源(资源包括CPU、内存、硬盘、打印机及其他各种外设),这样用户程序可以只要做他需要做的事情,而不必关注底层细节。

举例来说,你写一个Hello World,不需要告诉电脑从内存中什么位置取数据,在屏幕上哪些像素点要显示什么内容;同时你还可以打开快播看小电影。

【初音ミク】 answered 10 years, 1 month ago

Your Answer