C語言基礎 21 C語言編譯過程及GCC引數簡介

2021-09-09 03:34:13 字數 968 閱讀 6667

任何c語言的編譯過程可分為以下三部分:

在c語言中,以#開頭的語句又叫預編譯指令。預編譯主要做以下兩件事情:

1.將#include包含的標頭檔案做簡單的文字替換;

2.將**中的注釋刪除。

gcc -e 引數代表預編譯。以test.c函式為例,內容如下:

進行預編譯:

如上圖,編譯完成後可生成new.c檔案,開啟new.c

發現之前寫的#include和注釋都不見了,而上面出現了一堆亂七八糟的**。事實上,預編譯做的事情就是將注釋去掉,然後將#include 替換成上面那部分**,而上面那部分**其實就是stdio.**件的內容。

編譯的作用就是把文字的c語言編譯為二進位制的指令。

gcc -c 引數代表編譯。

c語言寫的程式是需要依賴各種庫的,所以編譯之後還需要把庫鏈結到最終的可執行程式當中去。

gcc 沒有單獨的鏈結引數

顯示程式的最終執行結果:hello world

ps: gcc -o 的語法:【gcc 原始檔 -o 編譯後生成的檔名】,o就是output的意思。

21 C語言 位域

如果程式的結構中包含多個開關量,只有 true false 變數,如下 struct status 這種結構需要 8 位元組的記憶體空間,但在實際上,在每個變數中,我們只儲存 0 或 1。在這種情況下,c 語言提供了一種更好的利用記憶體空間的方式。如果您在結構內使用這樣的變數,您可以定義變數的寬度來...

C語言知識彙總 21 C語言的加減乘除及取餘

加減乘除是常見的數 算,c語言當然支援,不過,c語言中的運算符號與數學中的略有不同,請見下表。加法減法 乘法除法 求餘數 取餘 數學 無 c語言 c語言中的加號 減號與數學中的一樣,乘號 除號不同 另外c語言還多了乙個求餘數的運算子,就是 下面的 演示了如何在c語言中進行加減乘除運算 include...

2 1 C語言之位操作符

c語言中,位操作一共有6個位操作符,分別是位與 and 位或 or 位取反 一元運算子 位異或 xor 左移位 右移位 2.1.1位與 1 位與操作符 邏輯與操作符 兩者不同。位與是按位進行與操作,只有0或者1這兩個運算元 邏輯與運算元是只要不是0的,都為1,邏輯與是兩個運算元作為整體來相與的。2 ...