2011年10月16日 星期日

C語言 - #define的operator

C語言的巨集參數(macro parameter)有一些特殊符號,例如「#」、「##」、「#@」、「\」、「...」等等,分別代表的意思是:

  1. 「#」 - Stringizing operator
    將實際對應的參數封裝進""之間,變成字串。
  2. 「##」 - Token-pasting operator (*註1)
    將對應的參數視為token,前後的token合併。
  3. 「#@」 - Charizing Operator (Microsoft Specific)
    將對應的參數處理成字元。
  4. 「\」 - 接續
    反斜線 \ 表示接續下一行敘述。
  5. 「...」 - Variadic macros
    參數名稱後面加上「...」,代表此參數為可變參數。

*註1:當「##」用在可變參數前,逗號後面時,它所代表的意思變成是允許可變參數為null或忽略,而不造成編譯錯誤。

參考網址:

沒有留言: