特此聲明 |
---|
本文不是作者原著,只是做的讀書(shū)筆記 |
序
operator: 運(yùn)算符
(表示運(yùn)算時(shí)) , 操作符
(表示操作時(shí))
local: 局部的
(統(tǒng)一)
chunk: 片
表示:一塊連續(xù)的內(nèi)存區(qū)域, 區(qū)別于block塊
1.1 信息就是位+上下文
像hello.c 這樣只由ASCII字符構(gòu)成的文件成為文本文件
, 所有其他文件都稱(chēng)為二進(jìn)制文件
.
一個(gè)同樣的字節(jié)序列可能表示 整數(shù)
,浮點(diǎn)數(shù)
,字符串
,機(jī)器指令
. 理解上下文.
1.2 程序被其他程序翻譯成不同的格式
1.2.png
預(yù)處理階段 : 預(yù)處理器cpp根據(jù)以
#
開(kāi)頭的命令,讀取系統(tǒng).h的內(nèi)容, 直接插入程序文本中, 等到另一個(gè)C程序, 通常以.i作為文件擴(kuò)展名.編譯階段 : 編譯器 將文本文件.i翻譯成文本文件.s(它包含一個(gè)
匯編語(yǔ)言程序
)匯編階段 : 匯編器as 將.s翻譯成機(jī)器語(yǔ)言指令, 把這些指令打包成一種叫做
可重定位目標(biāo)程序
, 結(jié)果保存到.o文件(二進(jìn)制)中.連接階段 : 程序調(diào)用了printf函數(shù), 它存在于printf.o目標(biāo)文件中, 連接器ld就負(fù)責(zé)處理這種合并. 結(jié)果得到
可執(zhí)行目標(biāo)文件
.