使用可變引數,實現函式,求函式引數的平均值

2021-08-20 12:37:05 字數 584 閱讀 9357

利用可變引數列表:可變引數列表是通過巨集來實現的,這些巨集定義在stdarg.h中。

值得注意的是:可變引數列表傳參時,第乙個傳的引數的個數。

步驟:1.定義乙個va_list型別的變數 arg

2.巨集va_start(arg,num)---這個巨集有兩個引數,第乙個引數為va_list型別的變數,第二個引數為可變引數列表之前的引數。

作用就是使得 va_list 的變數指向可變引數列表的首位址。這才是一般意義上的對 va_list的初始化。

3.巨集va_arg(arg,int) ---第乙個引數為va_list型別的變數第二個為引數的型別。

4.巨集va_end(arg)---結束標誌

求平均值:

求最大值:

可變引數函式使用

va函式的定義和va巨集 c語言支援 va函式,作為 c語言的擴充套件 c 同樣支援 va函式,但在 c 中並不推薦使用,c 引入的多型性同樣可以實現引數個數可變的函式。不過,c 的過載功能畢竟只能是有限多個可以預見的引數個數。比較而言,c中的 va函式則可以定義無窮多個相當於 c 的過載函式,這方...

可變引數函式

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

可變引數函式

一 什麼是可變引數 我們在c語言程式設計中有時會遇到一些引數個數可變的函式,例如printf 函式,其函式原型為 int printf const char format,它除了有乙個引數format固定以外,後面跟的引數的個數和型別是可變的 用三個點 做引數佔位符 實際呼叫時可以有以下的形式 pr...