首先,我們需要明確的是,由.c檔案生成可執行檔案的過程中都會經歷哪些過程。
如gcc -o xx.i xx.c -e
為僅執行預處理的命令,預處理實際上是展開標頭檔案和巨集替換的過程。
例:#define pi 3.14
如上文所述,發生在預處理階段的巨集替換是單純的字串的替換(並沒有整型、浮點型等的概念)。
此外,還可以定義巨集函式。例如#define add(a,b) a+b
,相對於一般的函式,它可以不考慮型別。
typedef用於給變數型別起別名,在預處理之後並不會被替換,一般的用於給自定義的資料型別起別名。
結構體是不同型別變數的集合,相比較於陣列(相同型別變數的集合)
struct student;
struct student = ;
int a = student.age;
此外,還可以定義結構體指標
struct student *s;
printf("name=%s\n",(*s).name)
//其中(*s).name等價於s->name
關鍵字為union,幾個變數共享同乙個記憶體位址,且公用體變數和成員位址為同一位址。
union data
union data data1;
data1.a=10;
下面記錄乙個動態鍊錶的例程,仔細體會。
#include #include struct weapon;
struct weapon * create()
p2->next = null;
return (head);
}int main()
學習筆記 Linux環境 C語言開發基礎 1
熟練地掌握linux環境下的一些命令對今後的學習和工作都會有很大的幫助。最近學習了 linux c語言程式設計基本原理與實踐 作為對c語言和linux系統的回顧,記錄學習筆記如下。vim有很多快捷命令,能夠大大地提高工作效率。下面首先任意編寫乙個簡單的c程式main.c include int su...
學習筆記 Linux環境 C語言指標與記憶體
指令 功能l list 列出源 start 進行單行除錯 p列印某值 n繼續執行下一行 s進入函式內部 bt檢視函式堆疊 回車繼續剛才的命令 x 數字 型別 位址 輸出記憶體中的值,例如x 3d 位址 f 函式號 可檢視當前函式中的變數值 記憶體規劃 這裡只表示順序,未體現大小 系統核心 自由可分配...
Linux系統C語言開發環境學習
專案 內容作業所屬課程 作業要求 學號 姓名 17041507 陳偉騫 作業學習目標 學習linux系統c語言開發環境 檢視gcc版本資訊 檢視make版本資訊 通過vim編輯器編寫乙個最簡單的c語言程式,先建立乙個資料夾,然後進入剛建立的資料夾。我們輸入完了源程式,接下來我們進行c語言程式編譯的四...