宏定義中##和#的使用

在宏定義中##用於連接兩部分,#用於將參數擴展成爲字符串結構,也就是爲變量加“”。
實例:
#define add(some,new) some_##new
那麼add(view,pic)將被編譯爲view_pic
#define prt(name) printf(#name)
那麼 prt(error)將被編譯爲 printf("error");

程序示例:

 1 #include <stdio.h>
  2 
  3 #define print(name,value) print_##name(#value);
  4 
  5 int print_audi(char *p){
  6     printf("this is audi with %s \n",p);
  7     return 0;
  8 }
  9 int print_bmw(char *p){
 10     printf("this is bmw with %s \n",p);
 11     return 0;
 12 }
 13 int main(){
 14 
 15     print(audi,good);
 16     print(bmw,better);
 17 
 18     return 0;
 19 }

輸出爲
this is audi with good
this is bmw with better


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章