建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記娛棒h88285:C語言中可變參數用法

?

在C說話中對照常用的可變參數便是printf();函數原型如下:

int printf(const char * format,……);

寫一個簡單的可變參數:  #include

void va_fun(int i,...);

int和記娛棒h88285 main(void)

{

va_fun(100);

va_fun(2和記娛棒h8828500,100);和記娛棒h88285

va_fun(100,200,300);

}

void va_fun(int i,...)

{

va_list arg_ptr;

int j = 0;

va_start(arg_ptr,i);

j = va_arg(arg_ptr,int);

va_end(arg_ptr);

printf("%d %dn",i,j);

}

這樣就實現了一個簡單的可變參數。著實可變參數是使用宏來實現的,宏在參數的客棧中查找參數的位置,然后返回。

定義如下:typedef char *和記娛棒h88285 va_list;

#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )

#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )

#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) -和記娛棒h88285 _INTSIZEOF(t)) )

#define va_end(ap) ( ap = (va_list)0 )

著實便是謀略參數客棧中的內存地址。

建議少用可變參數,在c++頂用多態實現就可以。

printf中根據format中的參數的個數確定后面參數的個數。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
吉祥麻将下载 gta5单人ceo赚钱快吗 黑龙江体彩6十1奖金 云南11选5开奖走势图 焰午三d官方网站 竞彩足球总进球数 e球彩 麻将游戏赚钱提现 云南快乐十分必赢技巧 辽宁快乐12开奖记录