c 不定引數

2021-05-27 10:54:03 字數 582 閱讀 6324

va_list vlist;

va_start(vlist, pszformat);                   // pszformat 表示 ... 的前乙個引數

va_end(vlist);

其中:typedef char * va_list

#define va_start _crt_va_start

#define va_arg _crt_va_arg

#define va_end _crt_va_end

#define _crt_va_start(ap,v)  ( ap = (va_list)_addressof(v) + _intsizeof(v) )

#define _crt_va_arg(ap,t)    ( *(t *)((ap += _intsizeof(t)) - _intsizeof(t)) )

#define _crt_va_end(ap)      ( ap = (va_list)0 )

當要取其中的值時,如下:

double d = va_arg(vlist, double);

requir header :    and  

C 不定引數

c 不定引數 下面,我們來看一下,如果在c 的函式中接收數量不定的函式引數。這種形式如同在c 的函式引數列表中使用params 型別的引數。我們可以將函式定義成能夠接受任意數量的實參。通過將省略號 3個句點 寫在函式定義中形參列表的最後,即可表示呼叫該函式時可以提供數量可變的實參。例如 int su...

C語言不定引數

最近,遇到乙個c語言的不定引數問題。其實,對於c語言的不定引數問題,只需要三個函式就可以搞定了。這三個函式的標頭檔案是,其實下面的三個函式都是乙個巨集定義 macro 這三個函式是 void va start va list ap,last type va arg va list ap,type v...

C 不定個數引數寫法

有時候需要寫不定個數引數的函式。就像c語言的sprintf函式。函式申明方法是比較固定的 return type functionname type t1 比如 void fun int printf const char format,省略號的位置就是不定個數的引數列表了。接下來,給出常見的3種寫...