函數(shù)原型能告訴編譯程序一個函數(shù)將接受什么樣的參數(shù),將返回什么樣的返回值,這樣編譯程序就能檢查對函數(shù)的調(diào)用是否正確,是否存在錯誤的類型轉(zhuǎn)換。例如,現(xiàn)有以下函數(shù)原型;
為玉樹等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及玉樹網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、成都做網(wǎng)站、玉樹網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
int
some_func(int,char·,long);
編譯程序就會檢查所有對該函數(shù)的引用(包括該函數(shù)的定義)是否使用了三個參數(shù)并且返回一個int類型的值。如果編譯程序發(fā)現(xiàn)函數(shù)的調(diào)用或定義與函數(shù)原型不匹配,編譯程序就會報告出錯或警告消息。例如,對上述函數(shù)原型來說,當編譯程序檢查以下語句時,就會報告出錯或警告消息:
x
=
some_func(l);
/*
not
enough
arguments
passed
*/
x
=
somc_funcc*hellol",
1,
"dude:");
/*
wrong
type
of
arguments
used
*/
x
=
aome_funcd,
sir,
2879,
"t");
/*
too
many
arguments
passed
*/
下例中的函數(shù)調(diào)用同樣是不正確的,因為函數(shù)some_func()的返回值不是一個long*類型的值。
lvalue=some_func(1,str,2879);
/*some_rune()returns
anint,not
a
long*
*/
同樣,編譯程序還能檢查函數(shù)的定義(或函數(shù)體)是否與函數(shù)原型匹配。例如,當編譯程序檢查以下函數(shù)定義時,就會報告出錯或警告消息:
int
some_func(char
*string,longlvalue,int
ivalue)
/*
wrong
order
of
{
parameters
*/
......
}
總之,在源文件中說明函數(shù)原型提供了一種檢查函數(shù)是否被正確引用的機制。目前許多流行的編譯程序都會檢查被引用的函數(shù)的原型是否已在源文件中說明過,如果沒有,就會發(fā)出警告消息。
# includestdio.h
int main()
{
int i,m=0;
for(i=2;i=100;i+=2) m=m+i;
printf("%d\n",m);
return 0;
}
或
#include
int
main()
{
int
i,sum=0;
for(i=1;i=50;i++)
{
sum=sum+2*i;
}
printf("2+4+6+…+98+100=%d\n",sum);
return
0;
}
擴展資料:
C程序是由一組變量或是函數(shù)的外部對象組成的。 函數(shù)是一個自我包含的完成一定相關(guān)功能的執(zhí)行代碼段。我們可以把函數(shù)看成一個“黑盒子”,只要將數(shù)據(jù)送進去就能得到結(jié)果,而函數(shù)內(nèi)部究竟是如何工作的,外部程序是不知道的。外部程序所知道的僅限于輸入給函數(shù)什么以及函數(shù)輸出什么。函數(shù)提供了編制程序的手段,使之容易讀、寫、理解、排除錯誤、修改和維護。
C程序中函數(shù)的數(shù)目實際上是不限的,如果說有什么限制的話,那就是,一個C程序中必須至少有一個函數(shù),而且其中必須有一個并且僅有一個以main為名的函數(shù),這個函數(shù)稱為主函數(shù),整個程序從這個主函數(shù)開始執(zhí)行。
參考資料來源:百度百科-C語言
正確答案是A.
B選項。不能嵌套定義。C選項,函數(shù)可以沒有返回值。D選項,沒有必要放在同一個c文件中,用其他c文件的函數(shù)可以給其定義的地方函數(shù)名前面加extern修飾。