在不用的地方申明,那作用域也就不同,那么在main里邊聲明也就只能在main函數(shù)里起作用(函數(shù)內(nèi)聲明叫局部聲明,反之在函數(shù)外部聲明就叫全局聲明)。以如果你聲明在外部,那么從申明開始之后的代碼都能使用它。
創(chuàng)新互聯(lián)專注于中大型企業(yè)的成都網(wǎng)站設計、網(wǎng)站建設和網(wǎng)站改版、網(wǎng)站營銷服務,追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術與技術開發(fā)的融合,累計客戶1000多家,服務滿意度達97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運用,我們將一直專注成都品牌網(wǎng)站建設和互聯(lián)網(wǎng)程序開發(fā),在前進的路上,與客戶一起成長!
C語言允許函數(shù)里聲明函數(shù),但是不建議這么寫,因為不利于多文檔的組織。C語言禁止函數(shù)里定義函數(shù),但是個別編譯器卻沒遵循標準。
你把f2和f1換下位置并去掉聲明就明白了 再說一句,寫函數(shù)聲明是編寫程序的良好習慣 請注意這是C程序,Cguan 方聲明標準編譯器是Turboc 2。
函數(shù)聲明的格式為:返回值類型符 函數(shù)名稱(形式參數(shù)列表);其中根據(jù)函數(shù)的不同,返回值類型可能是void(沒有返回值),形式參數(shù)也可能是void(沒有函數(shù)參數(shù))。
qsort函數(shù)里面寫了void swap()是聲明。 不過,一般是寫在函數(shù)外面,調(diào)用之前。把值傳遞出來,不一定要通過函數(shù)的返回值,rerun出來。也可以通過函數(shù)的參數(shù)實現(xiàn),可以把這種參數(shù)稱為輸出參數(shù)。
如果被引用函數(shù)在其他文件中定義的,就在主函數(shù)外聲明;如果是在該文件中定義的,就應當在主函數(shù)中聲明。
1、函數(shù)聲明是讓代碼調(diào)用點知道按照什么格式來調(diào)用函數(shù)。(函數(shù)參數(shù)列表是什么,返回值是什么。)否則調(diào)用點無法確知調(diào)用函數(shù)的格式。(注:在C里也可以無函數(shù)聲明就調(diào)用,那樣會在程序鏈接的時候做調(diào)用匹配檢查。
2、函數(shù)聲明的格式為:返回值類型符 函數(shù)名稱(形式參數(shù)列表);其中根據(jù)函數(shù)的不同,返回值類型可能是void(沒有返回值),形式參數(shù)也可能是void(沒有函數(shù)參數(shù))。
3、以后在用到這個函數(shù)的時候編譯器就按照這個聲明的格式來檢查函數(shù)的使用是否正確就是告訴編譯器函數(shù)的類型,名稱,使用的參數(shù)的類型。告訴編譯器將要調(diào)用此函數(shù)。告訴編譯器將要調(diào)用此函數(shù)。告訴編譯器將要調(diào)用此函數(shù)。
4、foo();} void foo(){ ;} 以上代碼中,第一句就是所謂函數(shù)聲明。其實直接用函數(shù)定義也就是void foo(){;}替代第一句也是可以的,不過函數(shù)的聲明讓你可以在定義它的代碼段之前使用它。
5、do_func(); //這里調(diào)用了一個函數(shù),但是編譯器不知道這個函數(shù)的存在,所以報錯。} 如果是 void main(){ void do_func(); //聲明就是告訴編譯器我有這么一個函數(shù) do_func(); //調(diào)用就不會出錯了 } 當然。
6、聲明和定義是針對函數(shù)的概念:包含函數(shù)實現(xiàn)的叫做函數(shù)的定義,一般位于.c文件中,如:int func(int a){return a+1;} 不包含函數(shù)實現(xiàn),只包含函數(shù)名的叫做函數(shù)的聲明,一般位于.h文件中。
所以函數(shù)調(diào)用不一定需要先聲明,當函數(shù)定義調(diào)用函數(shù)之后需才要先申明。
如果函數(shù)的定義是在調(diào)用之前,就不用聲明。如果先調(diào)用后定義,就要在調(diào)用之前先聲明。比如上面的例子,如果把函數(shù)max的定義部分放在main后面,那就要在調(diào)用之前聲明。
語法上是允許這樣的。C語言編譯系統(tǒng)是由上往下編譯的.一般被調(diào)函數(shù)放在主調(diào)函數(shù)后面的話,前面就該有聲明.不然C由上往下的編譯系統(tǒng)將無法識別。
對于C語言來說,函數(shù)聲明是可以省略的。 編譯的時候只是會報一個warning.不過VC是C++編譯器,而C++中對此類情況是直接報錯誤的。所以編譯不過。PS, 書上說返回類型是int可以不做聲明,并不是這種情況。
不是,如果你把自定義函數(shù)寫在主函數(shù)前面的話,就是說寫在開始的話,就可不用聲明了。否則聲明是必需的。