日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]在c++ ?primer書(shū)上看到標(biāo)題為“含有可變形參的函數(shù)”的章節(jié),內(nèi)容如下:省略符形參有下列兩種形式:void foo ( parm_list , …); ?void foo ( … );第一種形式

在c++ ?primer書(shū)上看到標(biāo)題為“含有可變形參的函數(shù)”的章節(jié),內(nèi)容如下:

省略符形參有下列兩種形式:

void foo ( parm_list , …); ?
void foo ( … );

第一種形式為特定數(shù)目的形參提供了聲明。在這種情況下,當(dāng)函數(shù)被調(diào)用時(shí),對(duì)于與顯示聲明的形參相對(duì)應(yīng)的實(shí)參進(jìn)行類(lèi)型檢查,而對(duì)于與省略符對(duì)應(yīng)的實(shí)參則暫停類(lèi)型檢查。在第一鐘形式中,形參聲明后面的逗號(hào)是可選的。

答:

你可以傳遞任意數(shù)量的參數(shù)給他,所以當(dāng)然跟沒(méi)有參數(shù)的函數(shù)有區(qū)別了(沒(méi)有參數(shù)的函數(shù),你是不可以給他傳遞任何參數(shù)的)。 ?
樓主提醒一點(diǎn):省略號(hào)的優(yōu)先級(jí)別最低,所以在函數(shù)解析時(shí),只有當(dāng)其它所有的函數(shù)都無(wú)法調(diào)用時(shí),編譯器才會(huì)考慮調(diào)用省略號(hào)函數(shù)的。

#include#includevoid?ArgFunc(const?char?*str,?...?)?
{?
????va_list?ap;?

????int?n?=?3;?

????char?*s?=?NULL;?

????int?d?=?0;?

????double?f?=?0.0;?

????va_start(ap,?str);?//?注意!這里第二個(gè)參數(shù)是本函數(shù)的第一個(gè)形參?

????s?=?va_arg(ap,?char*);?

????d?=?va_arg(ap,?int);?

????f?=?va_arg(ap,?double);?//?浮點(diǎn)最好用double類(lèi)型,而不要用float類(lèi)型;否則數(shù)據(jù)會(huì)有問(wèn)題?

????va_end(ap);?

????printf("%s?is?%s?%d,?%f",?str,?s,?d,?f);?
}?

void?main()?
{?
??????ArgFunc("The?answer",?"Hello",?345,?788.234);?
}

對(duì)于void ArgFunc(const char *str, …):

首先,如果要處理不定參數(shù)的函數(shù)要包含頭文件:stdarg.h
然后在處理不定參數(shù)的函數(shù)中先定義一個(gè)參數(shù)列表變量:va_list ap;

第二步:確定不定參數(shù)所在的位置。在這里,第一個(gè)參數(shù)為str,因此要從第二個(gè)參數(shù)進(jìn)行獲取參數(shù)列表。va_start(ap, str);表示在str參數(shù)之后獲取參數(shù)。由于C調(diào)用是從右到左依次將參數(shù)壓入堆棧的,因此處理起來(lái)比較容易。

第三步:獲取參數(shù)并指明類(lèi)型,如:va_arg(ap, char*);獲取第一個(gè)參數(shù),并指明類(lèi)型為char* ?
在main()函數(shù)中就對(duì)應(yīng)著實(shí)參”hello”;va_arg(ap, int);緊接著再取一個(gè)參數(shù),并指明類(lèi)型為int,對(duì)應(yīng)main()函數(shù)中的實(shí)參345;va_arg(ap, double);再接著取第三個(gè)參數(shù),并指明類(lèi)型為double,對(duì)應(yīng)main()中的實(shí)參788.234

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉