有2中情況:
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、普蘭店網(wǎng)絡(luò)推廣、微信小程序、普蘭店網(wǎng)絡(luò)營銷、普蘭店企業(yè)策劃、普蘭店品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供普蘭店建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
1,要么是先使用,就不需要再定義函數(shù)了
例如:
void
p()
{
//
}
void
main()
{
p();
}
....
2,先定義再使用,這時候,必須先要定義函數(shù),不然編譯器不識別此函數(shù)的
void
p();
void
mian()
{
p();
}
void
p()
{
//
}
//
希望可以幫到你
當(dāng)不提供函數(shù)原型,而調(diào)用處嘗不知道返回值類型,此時編譯器黙認(rèn)返回值為整型,而實(shí)際返回類型并不是整型,結(jié)果沒有做正確的數(shù)據(jù)類型轉(zhuǎn)換,取到的就是錯誤的數(shù)據(jù)
你可以在return sum;前打印這個結(jié)果,看看計(jì)算時是否正確,
同時在循環(huán)體中打印出來各個元素值,看看傳參數(shù)是否正確,如果這兩處都還正確則說明只是返回值未正確類型轉(zhuǎn)換。
函數(shù)的入口在main(),程序從上至下執(zhí)行的,如果你的函數(shù)在main()之后定義并且沒有聲明,執(zhí)行的時候編譯器會找不到定義而編譯不過。聲明就是要讓編譯器知道函數(shù)原型 (檢測錯誤)
總之,如果main()函數(shù)在前,必須在main()中寫函數(shù)聲明;如果函數(shù)在main()前面,可以不在main()中寫函數(shù)聲明
//int show_info()
函數(shù)原型聲明只是一個好習(xí)慣,C11標(biāo)準(zhǔn)并沒有強(qiáng)制要求必須給出原型聲明。
而且聲明函數(shù)的同時定義函數(shù)也是允許的。
那跟編譯器使用的標(biāo)準(zhǔn)有關(guān)
C99的編譯器不需要再聲明函數(shù),而老的C89需要
不過由于支持C99的編譯器只有極少數(shù)(如dev、gcc等),大多數(shù)的C編譯器(尤其是嵌入式編譯器)仍使用C89標(biāo)準(zhǔn),因此,如果你希望你的程序有更好的兼容性,還是遵從C89的標(biāo)準(zhǔn)寫上函數(shù)聲明語句吧
另外需要提示一點(diǎn):如果你定義的函數(shù)返回值是int類型,C89也不需要聲明就可以使用此函數(shù),這是特殊情況(我估計(jì)你遇到的情況應(yīng)該是這種),不過為了保持程序員的良好習(xí)慣,還是寫上聲明比較好