我想完全理解在某些语言中将代码编写成由OS执行的过程。在我的情况下,语言将是C,操作系统将是Windows。到目前为止,我阅读了许多不同的文章,但我不确定,我是否理解这个过程的权利,并且我想问你,你是否知道一些我无法找到的主题的优秀文章。一些通用的C语言问题
所以,我想我会知道C(基本上其他语言):
C编译器本身只处理的数据类型,基本的数学运算,指针运算,并与职能的工作。通过与函数一起工作,我的意思是如何将参数传递给函数,以及如何从函数中获取输出。在编译期间,函数调用被替换为将参数传递给堆栈,并且如果函数不是内联的,它的调用被链接器的某个符号替换。链接器比找到函数定义,并替换符号跳转到该功能(当然,跳回程序)。
如果上面的内容一般是正确的,我知道它的正确位置,那么最终的.exe文件实际上是链接器保存的功能? main()函数之后?什么创建.exe头文件?编译器还是链接器?
现在,C语言的其他功能,如今被称为C标准库的功能和声明被其他程序员编写来扩展和简化C语言的使用。但是,像printf()这样的函数是用不同的语言或汇编语言编写的(或可能是?)。还有我的下一个问题,可以是,例如printf()函数是用纯C编写的,而不使用汇编程序?
我知道这是一个相当大的问题,但我只是想知道,我是对的还是不对。相信我,我在网上阅读了很多文章,而且我不会问你,如果我能在一篇文章中找到这些信息。尽管我必须一块一块收集信息,所以我不确定我是否正确。谢谢。
我建议你先学会编程。任何好的编程手册都会告诉你链接和编译的一般工作流程。 – 2010-04-03 18:03:46