1. 程式人生 > >巨集定義的用法

巨集定義的用法

有五種用法,含有引數和不含引數,行尾都不用加分號

  1. #define   <識別符號>  [<替換列表>]

    //類似於全域性變量了
    //如果其他檔案沒有包含定義巨集的檔案,則在巨集定義的位置結束,如果有包含,則到包含的檔案結束
    #define LARGEST_NUM 1000
    
  2. #define  <識別符號>  ([引數列表]) ([替換列表])

    //注意,替換列表裡面必須加上括號,否則可能會導致歧義
    //當然,替換列表也可以新增中括號,就看自己的用法了{}
    #define add (a,b) (a+b)
    
  3. #ifdef   #else  #ifndef  #endif 組合起來可以進行條件編譯

    //#ifdef以及#ifndef和#endif 是成對出現的
    #ifdef debug
    ...
    #else
    ...
    #endif
    
  4. 檔案包含,在多重引用的情況下,很容易搞混一個h檔案是否已經包含。如果不確定,可以使用如下語句進行包含

    #ifndef _HEADFILE_
    #define _HEADFILE_
    ...
    ...
    #endif
    
  5. 更多的替換 ##,#@,#

    ##

    //作用是連線x和y
    #define Conn(x,y) x##y
    ...
    int a=Conn(123,456);
    //那麼a=123456
    string s=Conn(123,456);
    //那麼s="123456"
    

    #@

    //作用是把x轉換為char並返回
    #define ToChar (x) #@x 
    ...
    //x不能超過4個字元,否則就會報超長錯誤
    char a = ToChar(1)
    

    #

    //作用是把x轉換為string,並返回,
    #define ToString (x) #x
    ...
    //返回的結果是"123456"
    string s= ToString(123456)