一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

LINUX?C中用define定義可變參數(shù)的宏

 My Room 2012 2011-11-05
一般在調(diào)試打印Debug信息的時(shí)候, 需要可變參數(shù)的宏. 從C99開(kāi)始可以使編譯器標(biāo)準(zhǔn)支持可變參數(shù)宏(variadic macros), 另外GCC也支持可變參數(shù)宏, 但是兩種在細(xì)節(jié)上可能存在區(qū)別.
1. __VA_ARGS__
        __VA_ARGS__ 將 "..." 傳遞給宏 . 如
        #define debug(format, ...) fprintf(stderr, format, __VA_ARGS__)

2. GCC的復(fù)雜宏
        GCC使用一種不同的語(yǔ)法,從而可以給可變參數(shù)一個(gè)名字,如同其它參數(shù)一樣.
        #define debug(format, args...) fprintf (stderr, format, args)
        這和第一條的宏例子是完全一樣的,但是這么寫(xiě)可讀性更強(qiáng)并且更容易進(jìn)行描述.

3. ##__VA_ARGS__
        上面兩個(gè)定義的宏,如果出現(xiàn) debug("A Message")的時(shí)候,由于宏展開(kāi)后有個(gè)多余的逗號(hào),所以將導(dǎo)致編譯錯(cuò)誤.
        為了解決這個(gè)問(wèn)題,CPP 使用一個(gè)特殊的"##"操作,格式如下:
        #define debug(format, ...) fprintf (stderr, format, ## __VA_ARGS__)
        這里,如果可變參數(shù)被忽略或?yàn)榭?"##"操作將使預(yù)處理器(preprocessor)去除掉它前面的那個(gè)逗號(hào).

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    亚洲黄片在线免费小视频| 懂色一区二区三区四区| 日韩人妻欧美一区二区久久| 十八禁日本一区二区三区| 久久香蕉综合网精品视频| 久久热麻豆国产精品视频| 大伊香蕉一区二区三区| 日韩一区中文免费视频| 五月天丁香亚洲综合网| 国产精品成人一区二区在线| 亚洲一区二区三区在线免费 | 精品视频一区二区三区不卡| 成人午夜激情在线免费观看| 国产伦精品一区二区三区精品视频| 国产精品内射视频免费| 欧美日韩国产成人高潮| 中文字幕日产乱码一区二区| 亚洲乱码av中文一区二区三区| 国产精品欧美激情在线播放| 亚洲熟女精品一区二区成人| 午夜成年人黄片免费观看| 国产成人精品午夜福利| 日韩18一区二区三区| 国产成人精品国产亚洲欧洲| 在线观看欧美视频一区| 少妇人妻中出中文字幕| 日韩精品一区二区亚洲| 国产户外勾引精品露出一区 | 一区二区福利在线视频| 国产成人亚洲综合色就色| 久久亚洲精品成人国产| 国产精品伦一区二区三区在线| 亚洲国产色婷婷久久精品| 午夜视频成人在线免费| 亚洲国产精品一区二区毛片| 国产视频一区二区三区四区| 亚洲精品小视频在线观看| 中文字幕中文字幕在线十八区| 色婷婷丁香激情五月天| 亚洲精品深夜福利视频| 国内女人精品一区二区三区|