Va list以及相關函式的使用方法。

2021-09-10 18:21:16 字數 917 閱讀 9734

va_list以及相關函式的使用方法。

在標頭檔案stdarg.h裡面找到了關於這個幾個函式的巨集定義

#if  !defined(__stdarg)

#define __stdarg

typedef void    *va_list;

#define va_start(ap, parmn)   (ap = ...)

#define va_arg(ap, type) (*((type *)(ap))++)

#define va_end(ap)

#define _va_ptr                         (...)

#endif

va_list:可以把這個理解成乙個這是自定義的乙個變數型別,這裡是指標型別。

va_start():這是乙個初始化函式,初始化va_list修飾的變數。例如va_start(a,b);

這裡的a就是va_list修飾的變數,b是傳參函式的乙個變數,不一定是第乙個引數(從左至右)

。這個函式的用意是在執行va_start(a,b)以後,a指向第乙個可變引數在堆疊的位址。

va_arg():返回引數列表中指標a所指的引數,返回型別可以自定義,並使指標a指向引數列表中下乙個引數。例如va_arg(a,char);返回指標a所指向的引數,引數型別為 char型。還有就是使a指向下乙個引數。

va_end():使va_list修飾的變數作廢。就如va_end(a);實則沒有進行操作,可以理解成一種規範。在函式中隨著函式的結束可以自動的釋放掉。

下面附上對這個函式的使用**:

main()

void showstr(char *m,...)        

while(m!=0);

va_end(a);/*結束對變數的定義*/

}(第一次發部落格,希望可以幫到有需要的朋友)

va list可變引數的函式

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 re...

Python字典以及相關函式使用

不可變型別 整型,字串,元組 可變型別 列表,字典 不能用作鍵值名 dic handsome true print dic print dic hobby 字典的兩個特點 無序,鍵唯一 覆蓋掉 字典的建立的兩種方式 a list 1,2,3,4,5 轉換為乙個列表 print a a dict na...

php fopen函式以及相關函式

fopen string filename string mode bool use include path false resource context fopen 將 filename 指定的名字資源繫結到乙個流上。引數 filename 如果 php 認為 filename 指定的是乙個本地...