10個問題(程序員的自我修養)
阿新 • • 發佈:2018-08-01
什麽 內存 spa win 字符串 print 內容 語言 編譯器
想了解一些計算機底層的知識,於是買了本《程序員的自我修養》,耐著性子看了一遍,好像是看明白了,原來是這麽回事啊,合上書,書上咋說來著。涼涼!!!
我想一定是方法有問題,於是打算再看一遍,這次看書,要帶著10問題,也是書中開篇提到。
1、程序為什麽要在編譯器編譯之後才可以運行?
2、編譯器在把C語言程序轉換成可執行的機器碼的過程中做了什麽,怎麽做的?
3、最後編譯出來的可執行文件裏面是什麽?除了機器碼,還有什麽?他們怎麽存放的,怎麽組織的?
4、#include<stdio.h>是什麽意思?把stdio.h包含進來意味著什麽?C語言庫又是什麽?它怎麽實現的?
5、不同的編譯器(Microsoft VC、GCC)和不同硬件平臺(x86、SPARC、MIPS、ARM),以及不同的操作系統(Windows、Linux、UNIX、Solaris),最終編譯出來的結果一樣麽?為什麽?
6、Hello World程序是怎麽運行起來的?操作系統是怎麽裝載它的?從哪開始執行,到哪結束?main函數之前發生了什麽?main函數之後又發生了什麽?
7、如果沒有操作系統,Hello World 可以運行麽? 如果要在一臺沒有操作系統的機器上運行Hello World需要什麽?應該怎麽實現?
8、printf是怎麽實現的?它為什麽可以有不定數量的參數?為什麽它能夠在終端上輸出字符串?
9、Hello World程序在運行時,它在內存中是什麽樣子的?
10、了解以上這些內容,對我們有什麽幫助?(自己加的)
後續會一一解答上面的問題。
10個問題(程序員的自我修養)