C語言基礎篇(零)gcc編譯和預處理


導航:

  1. gcc編譯

  2. 預處理

 ----->x<------------->x<--------------->x<--------------->x<------------->x<-----

1. gcc編譯

        -- 1.0 預處理 gcc -E [.c --> .i ] 展開宏定義.
        -- 1.1 編譯 gcc -S [ .c --> .s ]
        -- 1.2 匯編 gcc -c [ .s --> .o ]
        -- 1.3 鏈接 gcc -o [*.o --> bin] 鏈接了系統庫.
        -- 1.4 手動鏈接庫文件 -I 比如我拿到了一個私庫,沒有提供源碼只提供了一些接口.那么在使用后編譯的時候
                需要手動導入,就是庫的使用. -I路徑. 在后文,我們自己會生成庫文件,靜態庫和動態庫,這個很基礎,一定要學好.
        -- 1.5 預處理開關 gcc -Dxxx 打開預處理的選項.!!
 
2.預處理
  2.1 #include
    #include "" 和 #include <> 的區別. <>只尋找系統庫.不尋找用戶頭文件.
  2.2 #define
    (1) 替換: #define 宏名 宏體 在替換過程中不進行語法檢查,所以宏體運算盡量加().
    比如: #define A 3+2
      a = 4*A --> 4*3+2 xx #define A (3+2)
    (2) 宏函數 #define ABC(x) (5+x)

  2.3 #ifdef #ifndef #else #endif
    (1) 條件預處理
    應用:調試版本和發行版本的切換
     (2) # 和 ##
      define ABC(x) #x 實際上是轉換成"x" 字符串
      define ABC(x) day##x -->dayx 就是一個連接符,把day當前前綴再展開.
define:
 
                 
int main()
{
#ifdef ABC
    printf("我是調試信息\n");
#endif
    printf("我是正常信息\n");
    return 0;
}
 
                 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM