printf函式:
1 #include 2 #include 34int myself_printf(char *format, ...)517
18int main(void)19
執行結果:test_num : 123
error函式:
1 #include 2 #include 34int myself_error(char *format, ...)519
20int main(void)21
執行結果:error: main failure
函式:
1 #include 2 #include 34void foo(char *format, ...)
5
27va_end(ap);
28} 29}
3031
int main(void)32
執行結果:
string :a
int :1
char :b
函式:
1 #include 2 #include 34void foo(int
n, ...)
5
1516
va_end(ap);
1718}19
20int main(void)21
執行結果:
tmp : 1
tmp : 2
tmp : 3
tmp : 4
和上邊的函式進行對比:
1 #include 23void foo(int
n, ...)
4 13}
1415
int main(void)16
執行結果:
temp : 1
temp : 2
temp : 3
temp : 4
函式:
1 #include 2 #include 34void foo(char *format, ...)517
18int main(void)19
執行結果:
va_arg result : foo
test : foo
函式:
1 #include 2 #include 34void testfun(char *a, int b, char *c, ...)515
16int main(void)17
執行結果:a : def
va list 可變引數
什麼是變長引數?所謂含有變長引數的函式是指該函式可以接受可變數目的形參。例如我們都非常熟悉的 printf,scanf等等。2 變長引數如何實現?首先來看下面這樣乙個例子 include include include void demo char msg,else break para va ar...
關於可變的引數列表va list的筆記
案例 int cdecl messageboxprintf tchar szcaption,tchar szformat,va list arg ptr 定義乙個指向個數可變的引數列表指標 va start arg ptr,argn 使引數列表指標arg ptr指向函式引數列表中的第乙個可選引數,說...
有關VA LIST的用法
va list 是在c語言中解決變參問題的一組巨集 va list的用法 1 首先在函式裡定義一具va list型的變數,這個變數是指向引數的指標 2 然後用va start巨集初始化變數剛定義的va list變數,這個巨集的第二個引數是第乙個可變引數的前乙個引數,是乙個固定的引數。3 然後用va ...