對C 編譯過程的一點粗淺的理解

2021-10-11 13:08:24 字數 363 閱讀 7754

以下只代表我個人粗淺的理解,如有錯誤請多包含,編譯本質上是把人類能理解的字元語言翻譯成機器能理解的機器語言的過程。為此編譯器做了一下幾個工作:

編譯一共分為幾個步驟:

1.預處理過程

基本上識別c++程式中的一些巨集,例如#ifdef之類的。

2.編譯

將字元流語言變成組合語言。

3.彙編

將組合語言轉化為機器指令的過程

4.鏈結

將目標檔案與所需的靜態庫或動態庫鏈結,靜態庫和動態庫包含了目標檔案中所需要的一些函式和變數。

靜態庫相當於在程式中加入一整段**(類似於標頭檔案),動態庫則給**新增了乙個對映,讓**可以定位到所需函式的位置,因此動態鏈結形成的目標檔案更小。

對編譯原理文法的一點理解

詞法 詞性,詞義 描述詞 句法 詞與詞之間的依賴關係與結構關係 描述句子 文法和語法 是同乙個意思,都是指英語中的grammar 描述語言 文法包含詞法和句法,詞法不難理解,所以我們要研究文法,就該重點研究的一下句法了。在看編譯原理時說是文法g s 其實我覺得也可以叫做句法g s 文法能夠推導出所有...

關於「裝飾者模式」的一點粗淺理解

裝飾器模式 decorator pattern 允許向乙個現有的物件新增新的功能,同時又不改變其結構 主要目的在於增強介面,而不是擴充套件介面 這種型別的設計模式屬於結構型模式,它是作為現有的類的乙個包裝。黑體字就是關鍵字,要想用好該模式,就必須體會著幾個關鍵字的意圖 在 head first設計模...

line height的一點粗淺認識

line height 有5種不同型別的單位。line height normal inherit 繼承 百分比 20px 畫素值 1.2 倍數 將行高和字型大小結合 1 body 行高屬性 如果父元素是行高結合字型大小,繼承的屬性只與父元素字型大小有關,與子元素字型大小無 使用normal和倍數除...