1. 程式人生 > >10個問題(程序員的自我修養)

10個問題(程序員的自我修養)

什麽 內存 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個問題(程序員的自我修養)