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.可以用畫幾個盒子的方式來跟蹤乙個程式的變數 一門語言的語法就是一套規則,用於管理這種語言中的合法語句組織...