關於va list例項

2022-07-22 17:30:33 字數 1369 閱讀 3354

printf函式:

1 #include 2 #include 3

4int myself_printf(char *format, ...)517

18int main(void)19

執行結果:test_num : 123

error函式:

1 #include 2 #include 3

4int myself_error(char *format, ...)519

20int main(void)21

執行結果:error: main failure

函式:

1 #include 2 #include 3

4void foo(char *format, ...)

5

27va_end(ap);

28} 29}

3031

int main(void)32

執行結果:

string :a

int :1

char :b

函式:

1 #include 2 #include 3

4void foo(int

n, ...)

5

1516

va_end(ap);

1718}19

20int main(void)21

執行結果:

tmp : 1

tmp : 2

tmp : 3

tmp : 4

和上邊的函式進行對比:

1 #include 2

3void foo(int

n, ...)

4 13}

1415

int main(void)16

執行結果:

temp : 1

temp : 2

temp : 3

temp : 4

函式:

1 #include 2 #include 3

4void foo(char *format, ...)517

18int main(void)19

執行結果:

va_arg result : foo

test : foo

函式:

1 #include 2 #include 3

4void 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 ...