第一章主要介紹了計算機在執行檔案的時候發生的操作,比較重要的知識點是程式翻譯的過程,分為四部分:
用cpp將.c源程式翻譯成.i文字檔案;
用ccl翻譯成.s文字(c-彙編);
用as翻譯成.o二進位制檔案;
用ld翻譯成可執行的二進位制程式。
總結:gcc -(esc) hello.c ----- hello (iso)制定庫檔案所在的目錄名
1、e:僅執行編譯預處理
2、s:將c轉化為組合語言
3、c:執行編譯操作,不執行鏈結操作
4、o:制定生成的輸出檔案
5、i:制定頭檔案目錄
6、l:制定程式鏈結的庫
7、l:
預處理:gcc –e hello.c –o hello.i;gcc –e呼叫cpp
編 譯:gcc –s hello.i –o hello.s;gcc –s呼叫ccl
匯 編:gcc –c hello.s –o hello.o;gcc -c 呼叫as
鏈 接:gcc hello.o –o hello ;gcc -o 呼叫ld
以上四步可以直接合為一步: gcc hello.c -o hello
同時編譯幾個檔案
1、一起編譯
gcc test_a.c test_b.c -o test 或者 gcc *.c -o test
2、分別編譯
gcc -c test_a.c
gcc -c test_b.c
gcc -o test_a.o test_b.o test
乙個專案的目錄引數
-src
-include
-bin
-libs
-readme.md
-makefile
靜態庫與動態庫
第二週學習總結
在本週,學習了物件導向的三大特徵,封裝,多型,繼承 讓我感覺到學習 的不易,基礎實在是很重要,現記錄本週學習過程 現的問題以及解決注釋。1.構造方法與成員方法的區別 成員方法 一般實現對類中成員變數的操作,提供某些功能,有返回值型別,通過物件呼叫!構造方法 一般是給物件的資料進行初始化,沒有返回值,...
第二週學習總結
一 棧和佇列的簡介 先進後出 限定性操作 棧具有後進先出的特性,如果問題解決具有先進後出的天然特性的話,則求解的演算法就要使用棧。先進先出 限定性操作 佇列具有先進先出的特性,如果問題解決具有先進先出的特性的話,則求解的演算法就要使用佇列。二 對棧和佇列的認識 棧 限制在表的一端進行插入和刪除運算的...
第二週學習總結
本週主要學習的是 1棧與佇列 2二分法 3位運算 首先要明白棧和佇列之間的區別,與棧相比佇列是先進先出的,先進去的就會先出來,而棧則與之不同,棧的進出順序與佇列不同並不是先進先出的有序關係,二十順序不定,候後進的可能先出。一般線性表 棧 邏輯結構 一對一 一對一 儲存結構 順序表 鍊錶 順序棧 鏈棧...