c和指標讀書筆記一之編譯

2021-09-06 17:03:54 字數 998 閱讀 2654

gcc的編譯流程分為了四個步驟:

1.預處理,生成預編譯檔案(.檔案):

gcc –e hello.c –o hello.i
2.編譯,生成彙編**(.s檔案):

gcc –s hello.i –o hello.s
3.彙編,生成目標檔案(.o檔案):

gcc –c hello.s –o hello.o

gcc hello.o –o hello

1.編譯並連線乙個完全包含於乙個原始檔的c程式(生成的.o檔案會被刪除)

gcc test.c
2.編譯並鏈結幾個c原始檔(生成的.o檔案不會被刪除)

gcc test1.c test2.c test3.c
3.編譯乙個c檔案,並把它和現存的目標檔案鏈結在一起(用於修改乙個檔案卻需要和其 他檔案一起編譯的時候)

gcc test1.c test2.o test3.o
4.編譯單個c檔案,生成目標檔案,但是不鏈結

gcc -c test.c
5.編譯多個c原始檔,為每乙個檔案生成乙個目標檔案

gcc -c test1.c test2.c test3.c
6.鏈結幾個目標檔案

gcc -c test1.o test2.o test3.o
7.乙個c程式他的main函式位於test1.c中,但是他要使用test2.c和test3.c中的函式,那應該使用命令

gcc  test1.c test2.c test3.c
鏈結的時候聯結器會預設在標準c函式庫中查詢,我們可以在gcc命令的最後新增-lname,此時就會同時在name函式庫中查詢

讀書筆記之c和指標(2)

一維陣列 1.陣列名是指標常量,也就是陣列第乙個元素的位址 2.程式完成鏈結後,記憶體中陣列的位置是固定的 3.只有在兩種情況下,陣列名並不用指標常量來表示,就是當陣列名作為sizeof操作符或單目操作符 的運算元時,取乙個陣列名的位址所產生的是乙個指向陣列的指標,而不是乙個指向某個指標常量值的指標...

讀書筆記之c和指標(9)

預處理器 1.編譯的第乙個階段是預處理,預處理器進行文字性質的操作 2.如果巨集定義的stuff非常長,可以把它分成幾行,除了最後一行之外,每行的末尾都要加乙個反斜槓 3.巨集替換也可以用於呼叫函式 4.define機制規定,允許把引數替換到文字中,這種實現通常稱為巨集 define name pa...

讀書筆記之c和指標(10)

輸入輸出 1.fflush迫使緩衝區的資料立即寫入,不管他是否已滿 2.隨時檢查fopen的返回值,開啟不成功時返回null 3.對於輸出流,fclose函式在檔案關閉前重新整理緩衝區 4.eof被定義為乙個整型,他的值在任何可能出現的字元之外,這種解決方法允許我門使用這些函式來讀取二進位制檔案 5...