我想完全理解在某些語言中將代碼編寫成由OS執行的過程。在我的情況下,語言將是C,操作系統將是Windows。到目前爲止,我閱讀了許多不同的文章,但我不確定,我是否理解這個過程的權利,並且我想問你,你是否知道一些我無法找到的主題的優秀文章。一些通用的C語言問題
所以,我想我會知道C(基本上其他語言):
C編譯器本身只處理的數據類型,基本的數學運算,指針運算,並與職能的工作。通過與函數一起工作,我的意思是如何將參數傳遞給函數,以及如何從函數中獲取輸出。在編譯期間,函數調用被替換爲將參數傳遞給堆棧,並且如果函數不是內聯的,它的調用被鏈接器的某個符號替換。鏈接器比找到函數定義,並替換符號跳轉到該功能(當然,跳回程序)。
如果上面的內容一般是正確的,我知道它的正確位置,那麼最終的.exe文件實際上是鏈接器保存的功能? main()函數之後?什麼創建.exe頭文件?編譯器還是鏈接器?
現在,C語言的其他功能,如今被稱爲C標準庫的功能和聲明被其他程序員編寫來擴展和簡化C語言的使用。但是,像printf()這樣的函數是用不同的語言或彙編語言編寫的(或可能是?)。還有我的下一個問題,可以是,例如printf()函數是用純C編寫的,而不使用匯編程序?
我知道這是一個相當大的問題,但我只是想知道,我是對的還是不對。相信我,我在網上閱讀了很多文章,而且我不會問你,如果我能在一篇文章中找到這些信息。儘管我必須一塊一塊收集信息,所以我不確定我是否正確。謝謝。
我建議你先學會編程。任何好的編程手冊都會告訴你鏈接和編譯的一般工作流程。 – 2010-04-03 18:03:46