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 指定的是乙個本地...