#include
int main(int argc, int *ar**)
printf("hello world");
對於下面的問題是否能夠清晰回答上來?
1.程式為什麼被編譯器編譯執行了之後才可以執行?
2.編譯器在把c語言程式轉換為可以執行的機器碼的過程中做了什麼?如何做的?
3.最後編譯出來可執行檔案裡面是什麼?除了機器碼還有什麼?它們怎麼存放及組織的?
4.#include是什麼意思?把stdio.h包含進來意味著什麼?c語言庫又是什麼?它怎麼實現的?
5.不同的編譯器(microsoft vc, gcc)和不同的硬體平台(x86、sparc、mips、arm),以及不同的作業系統(windows、linux、unix、solaris),
最終編譯出來的結果一樣嗎?為什麼
6.hello world程式是怎麼執行起來的?作業系統是怎麼裝在它的?它從**開始執行,到哪結束?main函式之前和之後發生了什麼?
7.如果沒有作業系統,hello world可以執行嗎?如果要在一台沒有作業系統的機器上執行hello world需要什麼?應該怎麼實現?
8.printf是怎麼實現的?它為什麼可以有不定量的引數?為什麼它的能夠在終端上輸出字串?
9.hello world程式在記憶體中執行時,它在記憶體中是什麼樣子的?
如果你對上面的問題一知半解,本專題將為您逐一揭開謎底
reference:
1.《程式設計師的自我修養》俞甲子,石凡,潘愛民著
筆記1 C語言概述
1.c語言起源 c語言是由unix的研製者丹尼斯 里奇和肯 湯普遜於1970年研製出的b語言的基礎上發展完善起來的。19世紀70年代初期,貝爾實驗室的丹尼斯 里奇第一次將b語言改為c語言。2.c語言特點 c語言是一種面向過程的語言,同時具有高階語言和組合語言的優點。由於具有良好的移植性,稍加修改或不...
檔案排版1(C語言)
英文電影中參演人員名單一般以某種方式進行排版顯示。給定乙個未排版的檔案listin.txt,該檔案中每行參演人員名單由冒號 分隔成前後兩部分,但格式雜亂無章,單詞 由除空格和水平製表符之外的其它字元構成 之間可能有多個空格或水平製表符分隔。編寫程式,要求將其按如下排版規則排版輸出到另乙個檔案list...
C基礎1 C語言環境
c語言簡介 c語言是一種通用的,面向過程式的計算機程式語言。1972年,為了移植與開發unix作業系統,丹尼斯 里奇在貝爾 實驗室設計開發了c語言。當前最新使用的c語言標準為c11,在他之前的c語言標準為c99。include int main 這個應該是最基礎最標準的寫法了,在vc編譯器中第乙個 ...