C Primer Plus學習筆記 第一章

2021-07-07 09:58:08 字數 1704 閱讀 5838

1.就程式設計而言,可移植性代表什麼?

c是一門可移植性語言,意味著在乙個系統上寫的

c程式,在其他系統上可以不經修改,或有較少的修改則可執行。如果有修改的必要,通常是將其引入的標頭檔案中的幾項內容。

解釋源**檔案、目標**檔案和可執行檔案的區別

2.編譯器的任務是什麼?

編譯是乙個程式,其工作是將源**轉為可執行**,可執行**是用計算機本機語言或機器語言表示的**。

3.鏈結器的任務是什麼?

c編譯器從

c庫中獲取最終程式加入**。庫中包含很多標準例程供開發者使用,鏈結器的程式將庫例程引入,大多系統上,編譯器自動執行鏈結器

4.計算機工作原理

現代計算機可分為幾個部件:

(1)**處理器,或稱cpu

,負責處理程式,

cpu1000

兆的cpu

一秒鐘內大概可重複

1億次這樣的工作。

cpucpu

使用該資訊獲取下一條指令。獲取一條指令後,

cpu

(2)隨機訪問儲存器,或稱記憶體、ram

,在計算機執行時用於儲存檔案和程式

(3)永久儲存器,一般是硬碟,及時計算機關機也可以儲存檔案和程式

(4)還有各種外圍裝置,如:滑鼠、鍵盤、顯示器

5.兩數相加步驟

(1)將記憶體單元為2000

的數字複製到暫存器1中

(2)將記憶體單元為2008

的數字複製到暫存器2中

(3)將暫存器2

中的數與暫存器

1中的數相加,答案留在暫存器1中

(4)將暫存器1

中的內容複製到記憶體單元

2009

6.源**檔案、目標**檔案和可執行檔案的區別

c程式設計的基本策略,是使用程式將源**轉換為可執行檔案,此檔案包含可以執行的機器語言**。c

編譯器將源**轉為中間**,鏈結器將此中間**與其他**相結合來生成可執行檔案。c

使用被劃分為兩部分的這一方法使程式便於模組化。可以編譯各個模組,然後使用鏈結器將編譯後的各個模組鏈結起來。這樣,如果需要改變乙個模組,則不必重新編譯其他模組,同時,鏈結器將程式與預編譯的庫**結合起來。

中間檔案的形式有多種選擇。最一般的選擇,是將源**轉為機器語言**,將結果放置在乙個目標**檔案中。雖然目標**檔案包含機器語言**,但該檔案還不能執行。目標檔案包含源**的轉換結果,但它還不是乙個完整的程式。

目標**檔案中所缺少的第乙個元素是一種叫做啟動**的東西,此**相當於程式與操作下系統之間的介面。第二個元素就是庫例程**。幾乎所有c

程式都利用標準

c庫中所包含的例程(稱為函式)。目標**檔案一般不包含這一函式的**,它只包含宣告使用的

printf()

函式指令。實際**儲存在另乙個稱為「庫」的檔案中。庫檔案中包含許多函式的目標**。

鏈結器的作用是將這3

個元素(目標**、系統的標準啟動**和庫**)結合到一起,並將他們存放在單個檔案,即可執行檔案中。對庫**而言,鏈結器只是從庫中提取所使用函式所需要的**。

目標檔案和可執行檔案都是由機器語言指令組成的。但目標檔案只包含所編寫的**轉換成的機器語言,可執行檔案包含所使用的庫例程及啟動**的機器**

以上所述有部分來自原作,部分來自本人理解,如有錯誤的地方,歡迎提出指正和批評

c primer plus學習筆記

1.變數名命名規則 重要的 1 有含義 2 只能用字母字元 數字和下劃線 3 第乙個字元不能是數字 4 區分大小寫 5 不能用c 關鍵字 2.整型 1 無符合型別不能表負值 2 char short 16 int short long 32,int 和longlong 64,long c 11 寬度...

C PrimerPlus學習筆記

if語句中判斷恒等,將常量放前,防止由於 寫成 造成的難以查詢的bug。if 0 count 若寫成 0 count 會報錯,count 0 則不會命名空間 using namespace std cout one cout two std cout one std cout two using s...

C Primer Plus學習筆記

1.組合語言是特地的cpu設計所採用的一組內部指令的助記符,不同的cpu型別使用不同的cpu c給予你更多的自由,也讓你承擔更多的風險 自由的代價是永遠的警惕 2.目標 檔案 可執行檔案和庫 3.可以用畫幾個盒子的方式來跟蹤乙個程式的變數 一門語言的語法就是一套規則,用於管理這種語言中的合法語句組織...