對va start 的理解

2021-06-16 13:56:56 字數 425 閱讀 5805

c 的 printf 的函式原型,你清楚不?

int printf(const char *fmt, ...); // 逗號,後面,即第二個引數是三個點

vsprintf 的函式原型:

int vsprintf(char *s, const char *fmt, va_list arg);

你見過va_list型別了嗎?好吧,我給個簡單例子

#include#includeint add(int n, ...);

int main()

int add(int n, ...) /* 該函式返回 n 個 int 數的和,n個int,跟在第乙個引數後面,依次列出*/

va_end(arg); /* 結束之前,end 一下~~ */

return sum;

}

va start函式的使用

基本過程 va list arglist 宣告乙個變數來轉換引數列表 va start arglist,format 初始化變數 va end arglist 結束變數列表,和va start成對使用 可以根據va arg arglist,type 取出引數 其中type可以是int,char等等 ...

va start和va end的使用

1 由於在c語言中沒有函式過載,解決不定數目函式引數問題變得比較麻煩 即使採用c 如果引數個數不能確定,也很難採用函式過載.對這種情況,有些人採用指標引數來解決問題.下面就c語言中處理不定引數數目的問題進行討論.2 下面是 裡面重要的幾個巨集定義如下 typedef char va list voi...

對委託的理解

在公司看了一上午的委託和事件 其實也沒有那麼久了,2個小時而已 終於明白了一些,看大家都沒有回帖,可能是因為我沒有設定加分,我的分太少了,剛來csdn。委託 我對委託的理解是這樣的 實現定乙個函式規範 簡單點說就是定義乙個函式的格式 如 public int test int a 委託裡是這樣寫的p...