日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++/C 宏定义(define)中# ## 的含义(转)

發布時間:2023/12/20 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++/C 宏定义(define)中# ## 的含义(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考:http://www.cnblogs.com/little-ant/p/3463080.html

http://hi.baidu.com/kiraversace/item/1148ee057147981a4ac4a3e9

C++/C 宏定義(define)中# ## 的含義

define?中的#?##?一般是用來拼接字符串的,但是實際使用過程中,有哪些細微的差別呢,我們通過幾個例子來看看。

#是字符串化的意思出現在宏定義中的#是把跟在后面的參數轉成一個字符串

#define ENUM_to_String(enum_id) ?#enum_id

eg:

1 2 3 #define??strcpy__(dst,?src)??????strcpy(dst,?#src) ????? strcpy__(buff,abc)??相當于?strcpy__(buff,“abc”)

##是連接符號,把參數連接在一起

1 2 3 #define?FUN(arg)?????my##arg 則?????FUN(ABC) 等價于??myABC

再看一個具體的例子

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include?<iostream> ????????? using?namespace?std; ????????? #define??OUTPUT(A)?cout<<#A<<":"<<(A)<<endl; ????????? int?main() { ????int?a=1,b=2; ????????? ????OUTPUT(a); ????OUTPUT(b); ????OUTPUT(a+b); ????????? ????return?1; }

id="iframe_0.24500557948733026" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://a.hiphotos.baidu.com/album/pic/item/2fdda3cc7cd98d1081fdc3df213fb80e7bec9037.jpg?_=3463080%22%20style=%22border:none;max-width:999px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.24500557948733026',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-width: initial; border-style: none; width: 991px; height: 660px;">

?

去掉#號我們得到這樣的結果,直接把a,b的值打印出來了,這是符合語法規則的,所以#的作用顯而易見。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include?<iostream> ???????? using?namespace?std; ???????? #define??OUTPUT(A)?cout<<A<<":"<<(A)<<endl; ???????? int?main() { ????int?a=1,b=2; ???????? ????OUTPUT(a); ????OUTPUT(b); ????OUTPUT(a+b); ???????? ????return?1; }

?

id="iframe_0.5359436411709109" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://a.hiphotos.baidu.com/album/pic/item/2cf5e0fe9925bc31fc2ace765edf8db1ca1370ed.jpg?_=3463080%22%20style=%22border:none;max-width:999px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.5359436411709109',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-width: initial; border-style: none; width: 958px; height: 602px;">

總結

以上是生活随笔為你收集整理的C++/C 宏定义(define)中# ## 的含义(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。