va list可變引數的函式

2021-06-05 14:40:09 字數 644 閱讀 5842

#include #include #include #include #include char *vstrcat(const char *first,...)

len=strlen(first);

va_start(argp,first);

while ((p=va_arg(argp,char *))!=_t("0"))

va_end(argp);

retbuf=malloc(len+1);

if (retbuf==null)

(void)strcpy(retbuf,first);

va_start(argp,first);

while((p=va_arg(argp,char *))!=_t("0"))

va_end(argp);

return retbuf;

}int main()

說明:

return value

va_argreturns the current argument;va_startandva_enddo not return values.

va list 可變引數

什麼是變長引數?所謂含有變長引數的函式是指該函式可以接受可變數目的形參。例如我們都非常熟悉的 printf,scanf等等。2 變長引數如何實現?首先來看下面這樣乙個例子 include include include void demo char msg,else break para va ar...

c函式va list可變引數原理

ifdef m alpha typedef struct va list else typedef char va list endif m alpha 是指dec alpha alpha axp 架構。所以一般情況下 va list 所定義變數為字元指標。需要用到的巨集有 intsizeof 巨集...

va list可變引數傳遞

va list va start 是何意?一 寫乙個簡單的可變引數的c函式 下面我們來 如何寫乙個簡單的可變引數的c函式.寫可變引數的 c函式要在程式中用到以下這些巨集 void va start va list arg ptr,prev param type va arg va list arg ...