C 基礎要點
C的編譯過程
預編譯-------------> 編譯----------------> 彙編---------------> 連結
(.c) (.s) (.o) (.out)
使用者態空間
程式碼段:存放程式碼
資料段:static、全域性變數、靜態變數
棧 :函式變數,函式空間(8M,64)
堆 :申請的動態空間
核心態空間
核心程序、執行緒佔用空間
特殊宣告
register int i; (cpu暫存器)用於頻繁改變的變數
volatitle int a; (告誡編譯器,不要隨意優化)用於易失易變的變數
typedef unsigned int u32; 把已經存在的型別 定義(別名) 為另一個型別
型別大小(64位作業系統)
short s; //短整型 sizeof(s) = 2 B
int i;//整型 sizeof(i) = 4 B (32bit平臺 大小是2B)
long l;//長整型 sizeof(l) = 8 B
long long ll;//擴充套件型整型 sizeof(ll) = 8 Bvoid *p sizeof(p) = 8 B(任何型別的指標在64bit平臺上都是8B)
continue和break
continue 跳過當前該次的迴圈體 繼續下一次迴圈
break 打破(跳出迴圈)
switch標籤貫穿性
* 標籤作為執行的切入口,一旦匹配 則不再看別的標籤,從該標籤處 開始順序執行 直到break
* 這種特徵稱之位case語句的貫穿性,此時的break打破這種貫穿性
switch(key){
case 'A':
case 'a':printf("-move left-\n"); break;case 'D':
case 'd':printf("-move right-\n");break;case 'W':
case 'w':printf("-move up-\n");break;case 'S':
case 's':printf("-move down-\n");break;
}