堆疊一般是從右到左的方向,可通過堆疊指標的方式,從堆疊中讀取出呼叫函式中的可變引數。
主要涉及到的的系統函式位於《stdarg.h》庫函式中:
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
va_start初始化指標,指向我們呼叫函式時的第乙個實參位址;
va_arg將指標指向我們輸入的第二個實參的位址,並指出他的型別;
va_end關閉指標繼續增加,停止可變引數的繼續獲取。
1 #include
2 #include
3 void ******_func(int i,...)
4 12 int main()
13
關於函式的可變引數
關於函式的可變引數 前提 一般我們程式設計的時候,函式中形式引數的數目通常是確定的,在呼叫時要依次給出與形式引數對應的實際引數。但在某些情況下我們希望函式的引數個數可以根據需要確定,因此c語言引入可變引數函式。一 什麼是可變引數 函式中引數的個數和型別是可變的,這就是可變引數 例如 printf 這...
可變引數的函式
1 可變引數的概念 c語言中支援引數可變的函式,printf就是乙個典型的引數可變函式,其函式原型如下 include int printf const char format,printf函式的原型中第1個引數format是固定的,後面的引數個數和型別都是可變的。編譯器使用三個點 作為引數的佔位符...
可變引數函式
c函式要在程式中用到以下這些巨集 void va start va list arg ptr,prev param type va arg va list arg ptr,type void va end va list arg ptr va list 用來儲存巨集va start va arg和v...