C語(yǔ)言中沒(méi)有參數(shù)默認(rèn)值的概念,但其實(shí)可以利用宏來(lái)模擬參數(shù)默認(rèn)值;
成都創(chuàng)新互聯(lián)公司主營(yíng)瑞安網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件定制開(kāi)發(fā),瑞安h5小程序開(kāi)發(fā)搭建,瑞安網(wǎng)站營(yíng)銷推廣歡迎瑞安等地區(qū)企業(yè)咨詢
我們之前介紹過(guò)可變參數(shù)宏與逗號(hào)運(yùn)算符,將兩者相結(jié)合的話可以定義出以下形式的宏:
示例:
輸出:
C語(yǔ)言不支持默認(rèn)參數(shù),不過(guò)可以用宏來(lái)模擬:
//---------------------------------------------------------------------------
#include stdio.h
#define DEFAULT 40 /*默認(rèn)參數(shù)值*/
#define FUN(A) fun(#A##"-") /*用于實(shí)現(xiàn)默認(rèn)參數(shù)的宏*/
int f(int n) /*用于實(shí)驗(yàn)?zāi)J(rèn)參數(shù)的函數(shù)*/
{
return printf("%d\n",n);
}
int fun(const char *a) /*確定函數(shù)調(diào)用的函數(shù),返回值類型要和實(shí)際需要調(diào)用的f()函數(shù)返回值類型一致*/
{
int n; /*變量的類型要和f()函數(shù)參數(shù)的類型一樣*/
if (a[0]=='-') n=DEFAULT;
else sscanf(a,"%d",n);
return f(n);
}
int main(void)
{
FUN();
FUN(67);
return 0;
}
//---------------------------------------------------------------------------
可以這樣調(diào)用。
int b=0指的是默認(rèn)參數(shù),調(diào)用時(shí)傳入或不傳入b都行,如果不傳入b的話,那么b的值就是0。
另外注意只有最后面的參數(shù)可以是默認(rèn)參數(shù)。
本文名稱:C語(yǔ)言函數(shù)參數(shù)給定默認(rèn)值 c語(yǔ)言 函數(shù) 默認(rèn)參數(shù)
當(dāng)前鏈接:http://jinyejixie.com/article44/dodpjee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站維護(hù)、建站公司、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站排名、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)