C語言宏定義實(shí)現(xiàn)可變參數(shù)

__VA_ARGS__ 是一個可變參數(shù)的宏,這個可變參數(shù)的宏是新的C99規(guī)范中新增的。

GCC、VC2005開始支持。

#define CALCSUM(v, ...)? ?sum(v, __VA_ARGS__)


int sum(int num_args, ...)

{

int val = 0;

va_list ap;

int i;

va_start(ap, num_args);

for (i = 0; i < num_args; i++)

{

val += va_arg(ap, int);

}

va_end(ap);

return val;

}


int main(void)

{

printf("10、20 和 30 的和 = %d\n", CALCSUM(3, 10, 20, 30));

printf("4、20、25 和 30 的和 = %d\n", CALCSUM(4, 4, 20, 25, 30));


return 0;

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,012評論 0 2
  • 題目來源:1、中興、華為、慧通、英華達(dá)、微軟亞洲技術(shù)中心等中外企業(yè)面試題目;2、C 語言面試寶典(林銳《高質(zhì)量編程...
    月震閱讀 2,007評論 0 1
  • 我們在C語言編程中會遇到一些參數(shù)個數(shù)可變的函數(shù),例如printf() 這個函數(shù),它的定義是這樣的: int pri...
    Mr_Me閱讀 844評論 0 2
  • 摘要:通過stdarg.h頭文件為函數(shù)提供了定義可變參數(shù)列表的能力。聲明一個可變參數(shù)的函數(shù)類似: void f1(...
    亂蓬頭199302閱讀 507評論 0 0
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 3,175評論 0 3

友情鏈接更多精彩內(nèi)容