青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Codejie's C++ Space

Using C++

求解:變參宏定義


??? 看《xxx的自我修養》里面有一段關于“變長參數宏”的代碼:
#include?<stdio.h>

#define?printf(args )?fprintf(stdout,?##args)

int?main()
{
????????printf(
"\n%d,?%s\n",?0,?"test");

????????
return?0;

}
??? 代碼不長,編譯也未見問題,結果也正常,演示了其想說明的部分。根據其意,‘##’宏用于字符串的連接操作,即將參數‘args’部分連接成一個字符串傳給fprintf函數。但我認為宏定義本身就是‘字符串的替換’,完全不需要‘##’,即,傳人的‘args’是什么,fprintf被傳人的也是什么,不會有任何變化,也無需作任何操作,因此我修改宏如下:

#define?printf(args?)?fprintf(stdout,?args)
??? 嗯,我獲得了相同的正常結果。

?? 從結果看,我認為《自我修養》想通過這個例子說明‘##’的使用方式,是不太恰當的。下面是我使用的GCC的版本信息:
Reading?specs?from?/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.3.2/specs
Configured?with:?..
/configure?--with-as=/usr/ccs/bin/as?--with-ld=/usr/ccs/bin/ld?--disable-nls
Thread?model:?posix
gcc?version?
3.3.2


??? 現在問題是這個‘...’了。
??? 如果說,宏定義本身就是‘字符串的替換’,那么,這里‘...’應該沒有任何用處。于是,修改宏如下:
#define?printf(args)?fprintf(stdout,?args)
??? 結果編譯得到如下錯誤:
print.cpp:7:38:?macro?"printf"?passed?3?arguments,?but?takes?just?1

??? 為什么會這樣?沒找到原因,無論對args加上‘##’,還是‘()’,都是一樣的錯誤結果。
??? 實話說,我從未寫過類似'args ...'這樣的參數,按我的理解,這語法檢查的實話就應該出差了,但事實卻沒有。
???? 各位對'...'的用法有啥見解?


<----自作聰明的分割線---->
??? g++的 -C -E參數對付宏和模版的調試很好用。。。

posted on 2009-08-24 15:05 codejie 閱讀(1828) 評論(4)  編輯 收藏 引用 所屬分類: C++

評論

# re: 求解:變參宏定義[未登錄] 2010-10-14 14:48 K

args...是變參的意思,因為printf(format, ...)后面那個參數是變長的,你這邊的寫法 #define printf(args...) fprintf(stdout, args),左邊第一個args...代表變參,右邊args就直接指代該變參,我也不明白書里為什么有##  回復  更多評論   

# re: 求解:變參宏定義[未登錄] 2011-01-26 00:04 louis

這是為了在參數為空時消除逗號 @K
  回復  更多評論   

# re: 求解:變參宏定義 2011-09-21 13:42 余楚偉

你修改之后的宏除了format之外,至少需要一個參數;而《XXX的自我修養》則不需要。  回復  更多評論   

# re: 求解:變參宏定義 2011-09-23 10:28 codejie

@余楚偉
這樣啊。。回頭試試,謝謝。  回復  更多評論   

公告

Using C++

導航

統計

留言簿(73)

隨筆分類(513)

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本色道久久88精品综合| 亚洲激情自拍| 91久久精品美女| 欧美一区二区成人6969| 亚洲国产精品va| 欧美福利视频| 午夜亚洲一区| 免费h精品视频在线播放| 99视频有精品| 久久久久国产一区二区| 亚洲午夜伦理| 欧美激情亚洲综合一区| 亚洲女性裸体视频| 欧美a级一区二区| 久久精品国产久精国产爱| 欧美成人一二三| 久久午夜电影| 西西人体一区二区| 欧美国产日韩一区二区在线观看 | 久久尤物视频| 亚洲一区二区久久| 国产精品久久久久久久久搜平片 | 久久久久国产精品人| 久久综合九色综合欧美狠狠| 亚洲一区二区三区免费视频| 亚洲欧洲日本一区二区三区| 欧美www视频| 亚洲午夜91| 一本色道久久| 一区二区三区在线免费观看| 99这里只有精品| 国产精品久久久久久久午夜片 | 亚洲成色最大综合在线| 一区二区三区四区五区视频| 在线精品视频一区二区三四| 中文在线不卡| 欧美中文日韩| 国产一在线精品一区在线观看| 亚洲视频电影图片偷拍一区| 一本色道久久综合亚洲91| 欧美激情久久久| 亚洲人成小说网站色在线| 亚洲国产日韩欧美综合久久| 久久久噜噜噜久久人人看| 另类尿喷潮videofree | 亚洲一区在线观看视频| 欧美调教vk| 午夜免费日韩视频| 欧美国产一区二区| 亚洲人成精品久久久久| 欧美精品v日韩精品v韩国精品v | 亚洲欧美日韩天堂| 国产一区二区三区免费观看| 开元免费观看欧美电视剧网站| 亚洲国产一区二区视频| 亚洲欧美一区二区三区极速播放 | 亚洲免费影视第一页| 国产自产在线视频一区| 欧美午夜精品理论片a级按摩| 久久精品99国产精品日本| 最新日韩精品| 欧美福利视频| 久久影视三级福利片| 亚洲男人天堂2024| 99re热这里只有精品免费视频| 国产乱码精品一区二区三区不卡 | 免费在线亚洲欧美| 欧美中文字幕久久| 亚洲欧美日韩国产一区二区三区| 亚洲国产精品一区二区www| 免费欧美在线视频| 久久午夜视频| 欧美丰满高潮xxxx喷水动漫| 久久激情综合网| 久久综合中文| 亚洲国产精品一区二区尤物区| 免费成人网www| 久久精品在线免费观看| 欧美人与禽性xxxxx杂性| 欧美国产一区二区三区激情无套| 免费成人av| 欧美激情中文字幕一区二区| 欧美精品久久99久久在免费线| 蜜臀久久99精品久久久久久9 | 亚洲福利视频网站| 亚洲靠逼com| 欧美一级视频免费在线观看| 欧美专区中文字幕| 久久婷婷人人澡人人喊人人爽| 巨胸喷奶水www久久久免费动漫| 久久在线免费| 亚洲精品男同| 久久一区二区三区四区五区| 欧美激情一区二区三区四区| 国产精品爽黄69| 91久久精品国产91久久| 午夜精品在线看| 最新国产の精品合集bt伙计| 亚洲午夜精品久久久久久浪潮| 久久久99免费视频| 国产精品九九| 一区二区三区四区蜜桃| 麻豆freexxxx性91精品| 亚洲视频一起| 男同欧美伦乱| 国产精品国产三级国产专播精品人| 狠狠色狠色综合曰曰| 欧美在线免费视频| 亚洲婷婷综合色高清在线| 欧美精品激情在线观看| 亚洲激情另类| 欧美激情网友自拍| 欧美福利视频在线| 夜夜爽99久久国产综合精品女不卡 | 欧美精品一区二区三区四区| 国产一区二区日韩精品欧美精品 | 亚洲国产精品久久久久婷婷老年| 亚洲午夜精品网| 国产精品视频一区二区三区| 久久精品30| 久久伊人精品天天| 日韩一区二区电影网| 亚洲精品国产拍免费91在线| 欧美精品v日韩精品v国产精品| 99热免费精品| 亚洲免费在线观看视频| 亚洲国产成人一区| 一本色道久久综合亚洲精品不| 欧美日韩免费看| 麻豆国产va免费精品高清在线| 猛干欧美女孩| 欧美伊人久久| 欧美精品不卡| 久久婷婷国产综合尤物精品 | 一区在线电影| 一区二区高清在线| 激情六月婷婷综合| 亚洲欧美一区二区在线观看| 亚洲日韩视频| 久久精品最新地址| 午夜精品理论片| 欧美日韩理论| 欧美激情一区二区三区四区| 国产人妖伪娘一区91| 99热免费精品| 夜夜夜精品看看| 欧美二区在线播放| 欧美韩国一区| 亚洲国产精品t66y| 久久精品国产综合精品| 久久午夜影视| 精品成人国产| 欧美freesex8一10精品| 欧美成人午夜免费视在线看片| 夜夜嗨av一区二区三区四季av| 亚洲经典三级| 欧美久久成人| 一区二区三区产品免费精品久久75| 亚洲精品婷婷| 国产精品久久久亚洲一区 | 亚洲韩日在线| 亚洲无吗在线| 国产一区二区三区免费不卡| 久久免费高清| 亚洲天堂男人| 欧美电影打屁股sp| 亚洲天堂男人| 黄色成人片子| 国产精品成人在线观看| 久久av资源网站| 亚洲欧洲精品一区二区三区波多野1战4| 99国内精品久久| 国产一区二区视频在线观看| 牛牛影视久久网| 欧美在线视频导航| 99国产一区| 欧美国产成人精品| 久久久久久久久综合| 一区二区三区久久精品| 亚洲第一页自拍| 国产一区二区三区久久久久久久久| 蜜桃av一区二区三区| 欧美中文字幕久久| 午夜亚洲性色视频| 亚洲自拍偷拍视频| 99国内精品久久| 日韩视频免费观看高清完整版| 久久资源av| 久久久久久久999| 久久精品免费| 美女脱光内衣内裤视频久久影院| 性欧美1819性猛交| 欧美一区二区三区在线看| 亚洲一区二区三区高清 | 一本综合久久| 一区二区三区回区在观看免费视频| 亚洲经典视频在线观看| 一本色道88久久加勒比精品| 一区二区三区欧美激情| 亚洲一区二区三区高清不卡|