多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > C Language Study - how to use '#'

C Language Study - how to use '#'

來源:程序員人生   發布時間:2015-04-11 09:30:24 閱讀次數:3329次

宏中的#的功能是將其后面的宏參數進行字符串化操作(Stringizing operator),簡單說就是在它援用的宏變量的左右各加上1個雙引號。

如定義好#define STRING(x#x以后,下面2條語句就等價。

       char *pChar = "hello";

       char *pChar = STRING(hello);

還有1個#@是加單引號(Charizing Operator

#define makechar(x)  #@x

       char ch = makechar(b);與char ch = 'b';等價。

 

但有小問題要注意,宏中遇到###時就不會再展開宏中嵌套的宏了。甚么意思了?比如使用char *pChar =STRING(__FILE__);雖然__FILE__本身也是1個宏,但編譯器不會展開它,所以pChar將指向"__FILE__"而不是你要想的形如"D:XXX.cpp"的源文件名稱。因此要加1個中間轉換宏,先將__FILE__解析成"D:XXX.cpp"字符串。

定義以下所示2個宏:

#define _STRING(x#x

#define STRING(x_STRING(x)

再調用下面語句將輸出帶""的源文件路徑

       char* pChar = STRING(__FILE__);

       printf("%s %s "pChar, __FILE__);

可以比較下STRING(__FILE__)__FILE__的不同,前將帶雙引號,后1個沒有雙引號。


本文參考:

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美一级日本一级韩国一级 | 国产精品69白浆在线观看免费 | 伊人网在线免费观看 | 日本特黄特色大片免费视频播放 | 国产不卡的一区二区三区四区 | 综合网小说图片区 | 午夜精品福利影院 | 毛片三级在线观看 | 日韩欧美一二三 | 最近最新中文字幕大全免费7 | 图片区偷拍区小说区 | 亚洲校园激情 | 久久精品国产免费 | 一级空姐毛片 | 色妞影视 | 亚洲欧洲一区二区 | 欧美v亚洲 | 免费网站在线看 | 一级久久久 | 色老头福影院韩国激情影院 | 日韩一级欧美一级在线观看 | 免费一区二区三区四区五区 | 精品小视频 | 日本视频一区二区免费播放 | 免费观看69xxx视频在线 | 日本一区二区视频在线观看 | 免费国产阿v视频在线观看 免费国产成高清人在线视频 | 亚洲国产精品一区二区久久 | 亚洲乱码在线播放 | 亚洲天堂资源网 | 亚洲一区在线播放 | 国产精品99一区二区三区 | 国产图片区 | 一级淫片在线观看 | 欧美一区二区不卡视频 | 肉视频在线观看 | 一级做a级爰片性色毛片视频 | 性久久久久 | 欧美一级视频在线观看 | 亚洲欧洲日产国码二区在线 | 男女上下爽无遮挡午夜免费视频 |