程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言宏定義時#(井號)和##(雙井號)的用法

C語言宏定義時#(井號)和##(雙井號)的用法

編輯:關於C語言

#在英語裡面叫做 pound   在C語言的宏定義中,一個#表示字符串化;兩個#代表concatenate   在宏定義中,#的功能是將其後面的宏參數進行字符串化操作(Stringfication),即無論後面的宏變量是字符串還是常量,都當成字符來處理。   而## 被稱為連接符(concatenator),用來將兩個Token連接為一個Token。注意這裡連接的對象是Token就行,而不一定是宏的變量。       舉例如下:   [cpp]   #include <iostream>   void quit_command(){       printf("I am quit command\n");   }      void help_command(){       printf("I am help command\n");   }      struct command   {       char * name;       void (*function) (void);   };     #define COMMAND(NAME) {#NAME,NAME##_command}   #define PRINT(NAME) printf("token"#NAME"=%d\n", token##NAME)   main(){       int token9=9;       PRINT(9);       struct command commands[] = {           COMMAND(quit),           COMMAND(help),       };         commands[0].function();   }         得到的結果是:       token9=9 I am quit command

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved