当前位置 - 股票行情交易網 - 金融財經 - c語言如何封裝壹個帶有可變參數的方法?

c語言如何封裝壹個帶有可變參數的方法?

需要借用C語言的VA_LIST?宏定義,及相關操作來實現可變參數。

VA_LIST?所在頭文件:#include <stdarg.h>,用法如下:

(1)首先在函數裏定義壹具VA_LIST型的變量,這個變量是指向參數的指針;

(2)然後用VA_START宏初始化剛定義的VA_LIST變量;

(3)然後用VA_ARG返回可變的參數,VA_ARG的第二個參數是妳要返回的參數的類型(如果函數有多個可變參數的,依次調用VA_ARG獲取各個參數);

(4)最後用VA_END宏結束可變參數的獲取。

以下是壹個自定義打印接口的實現:

int?my_printf(const?char?*fmt,?...)//...表示參數可變

{

va_list?args;//定義va_list

static?char?gc_PrintfOutBuff[1000];

va_start(args,?fmt);//初始化

vsnprintf((char?*)?gc_PrintfOutBuff,?1000,?(char?*)?fmt,?args);//這裏沒有使用VA_ARG取回單個變量,而是借用vsnprinf壹次性讀取。

va_end(args);//結束獲取

puts("%s",(const?char?*)gc_PrintfOutBuff);//使用。

return?0;

}