第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C ++宏的可選參數(shù)

C ++宏的可選參數(shù)

C++
躍然一笑 2019-11-08 10:45:07
有什么方法可以通過C ++宏獲取可選參數(shù)?某種重載也是很好的。
查看完整描述

3 回答

?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

這是一種方法。它兩次使用參數(shù)列表,首先形成助手宏的名稱,然后將參數(shù)傳遞給該助手宏。它使用標(biāo)準(zhǔn)技巧來計算宏參數(shù)的數(shù)量。


enum

{

    plain = 0,

    bold = 1,

    italic = 2

};


void PrintString(const char* message, int size, int style)

{

}


#define PRINT_STRING_1_ARGS(message)              PrintString(message, 0, 0)

#define PRINT_STRING_2_ARGS(message, size)        PrintString(message, size, 0)

#define PRINT_STRING_3_ARGS(message, size, style) PrintString(message, size, style)


#define GET_4TH_ARG(arg1, arg2, arg3, arg4, ...) arg4

#define PRINT_STRING_MACRO_CHOOSER(...) \

    GET_4TH_ARG(__VA_ARGS__, PRINT_STRING_3_ARGS, \

                PRINT_STRING_2_ARGS, PRINT_STRING_1_ARGS, )


#define PRINT_STRING(...) PRINT_STRING_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__)


int main(int argc, char * const argv[])

{

    PRINT_STRING("Hello, World!");

    PRINT_STRING("Hello, World!", 18);

    PRINT_STRING("Hello, World!", 18, bold);


    return 0;

}

這使宏的調(diào)用者(而不是寫者)更容易。


查看完整回答
反對 回復(fù) 2019-11-08
  • 3 回答
  • 0 關(guān)注
  • 756 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號