gcc hello.c編譯
gcc -e hello.c使編譯過程停留在預處理之後編譯之前
gcc -e hello.c > hello.i使預處理產生的檔案生成到hello.i檔案內
預處理做的第一件事是:使標頭檔案展開(#include)
巨集替換也是在預處理階段處理
條件編譯
#ifndef
#else
#endif
預處理的處理使處理#號開頭的檔案
<>標頭檔案在系統的庫檔案中去找,找不到就報錯
""標頭檔案先在當前資料夾中找,找不到再去庫中找
gcc -c hello.c在編譯階段停下來,生成的編譯結果在hello.o中
gcc -s hello.c在彙編階段停下來,生成的編譯結果在hello.s中
gcc hello.c -o hello可以將生成的檔案重新命名為hello替換a.out
庫檔案:可以使用檔案裡包含的函式和變數,但是使用者看不到裡面具體的實現原始碼
linux下庫分為靜態庫和動態庫:
靜態庫:是在執行程式之前就已經加入到執行**中,成為程式的一部分來執行,字尾名:.a(編譯之前載入)
動態庫:是在執行程式啟動時載入到執行**中,字尾名:.so(編譯時載入)
靜態庫和動態庫的區別?
①執行效率是靜態庫的效率高
②生成的可執行檔案也是靜態庫的大
③檔案的部署:靜態庫更好部署
④程式的公升級:動態庫的公升級更方便(動態庫公升級只需替換庫檔案)
課堂筆記4
一 指標 在32位系統中,不管什麼型別的指標都佔4個位元組,例如int char double long 在定義時表示是指標變數,在使用時表示取值 int p,a p a p 3 或者int a 1 int p a p 3 以上兩種寫法都對,這樣a和 p的值都為3了 段錯誤 segmentation...
linux課堂筆記
rw r r 第一位有 d,l 表示普通檔案,d表示目錄,l表示連線檔案 快捷方式 接下來三位為一組,分別表示u所有者,g所屬組,o其他人。r讀,w寫,x執行 代表acl許可權 數字代表引用計數 開頭的檔案代表隱藏檔案 系統檔案 ls l簡稱ll就是ls的詳細資訊 建立目錄 mkdir make d...
機器學習課堂筆記4
1,機器什麼時候可以學習 2,為什麼機器可以學習 3,機器怎麼學習 4,機器怎麼樣才能學得更好 vc維 課堂筆記3中提到 break point 的概念 在資料量達到一定數量k的時候,假設集合h無法再shatter這k個資料,則成長函式mh的break point就是k。vc dimision k ...