1. 程式人生 > >C 基礎要點

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  B

            void    *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;
    }