函數(shù)聲明時只需寫出形參類型。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、和龍網(wǎng)站維護(hù)、網(wǎng)站推廣。
函數(shù)定義時必須寫出形參類型和變量名。
C語言中的標(biāo)準(zhǔn)函數(shù)printf便使用這種機制。在聲明不確定形參的函數(shù)時,形參部分可以使用省略號“…”代替?!啊备嬖V編譯器,在函數(shù)調(diào)用時不檢查形參類型是否與實參類型相同,也不檢查參數(shù)個數(shù)。
擴展資料
示例
例如:
void ConnectData(int i,...)
在上面的代碼中,編譯器只檢查第一個參數(shù)是否為整型,而不對其他參數(shù)進(jìn)行檢查。
對于可變參數(shù)的函數(shù),需要進(jìn)行特殊的處理。首先需要引用 stdarg.h 頭文件,然后利用va_list類型和va_start、va_arg、va_end 3個宏讀取傳遞到函數(shù)中的參數(shù)值。
這幾個宏的定義如下(在 ANSI C 中):
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
void va_start( va_list arg_ptr, prev_param )。
如果需要函數(shù)返回一個結(jié)果,自然需要定義返回類型,否則可設(shè)置為void,表示無返回值
函數(shù)可以在調(diào)用函數(shù)的函數(shù)(比如main函數(shù))之前定義,這樣就無需聲明了;
舉例:
int?add(int?x,int?y)?{?return?x+y;?}?//在編譯程序編譯到main的調(diào)用add之處時,由于已經(jīng)編譯過add的函數(shù)了,因此編譯程序已經(jīng)知曉調(diào)用規(guī)則,因此可以省略聲明語句
void?main()?{?int?x=5,y=6,c;?c=add(x,y);?printf("%d\n",c);?}
如果函數(shù)在調(diào)用函數(shù)的函數(shù)之后定義,為了通知編譯程序要調(diào)用函數(shù)的格式,需要在調(diào)用函數(shù)的函數(shù)前添加函數(shù)的聲明。
舉例:
int?add(int?x,int?y);?//函數(shù)聲明也可以簡單地寫成int?add(int,int);通知編譯程序main中調(diào)用add的規(guī)則即可
void?main()?{?int?x=5,y=6,c;?c=add(x,y);?printf("%d\n",c);?}
int?add(int?x,int?y)?{?return?x+y;?}