Review Questions
- 程式為什麼要被編譯器編譯了之後才可以執行?
- 編譯器在把C語言程式轉換成可以執行的機器碼的過程中做了什麼,怎麼做的?
- 最後編譯出來的可執行檔裡面是什麼?除了機器碼還有什麼?它們怎麼被存放的,怎麼被組織的?
- #include <stdio.h>是什麼意思?把stdio.h包含進來意味著什麼?C語言庫又是什麼?它是怎麼實作的?
- 不同的編譯器(Microsoft VC、GCC)和不同的硬體平台(x86、SPARC、MIPS、ARM),以及不同的作業系統(Windows、Linux、UNIX、Solaris),最終編譯出來的結果會一樣嗎?為什麼?
- Hello World程式是怎麼執行起來的?作業系統是怎麼載入它?它是從哪裡開始執行,到哪裡結束? main函式結束後又發生了什麼?
- 如果沒有作業系統,Hello World可以執行嗎?如果要在沒有作業系統的機器執行Hello World需要什麼?應該怎麼實作?
- printf是怎麼實作的?它為什麼可以有數量不定的參數?為什麼它能夠在螢幕輸出字串?
- Hello World程式在執行時,它在記憶體中是什麼樣子?