不知道剛開始學函式這塊時,總以為要把函式宣告放在函式定義前面,甚至有一種陷入框架的感覺,所以在此對此進行一下反思:
根據c89規定,在任何執行語句之前,在塊的開頭宣告所有區域性變數。在c99以及c++中則沒有這個限制,即在首次使用之前,可在塊的任何位置都可以宣告變數。也就是說只要在你呼叫函式前,能讓編譯器找到你的呼叫函式的資訊就可以了,並不一定是要在前面的。
我便搞了個**試試:
**一:
includeusing namespace std;
int max(int x, int y);//函式的宣告 ,x,y是形參
int main()
}int max(int x, int y)//函式的定義
**二:
#includeusing namespace std;
int max(int x, int y)//函式的定義
int main()
return 0;
}
除錯後發現都沒有報錯,都可以得到正確的執行結果。由此可以得出下面結論:程式先定義的話,可以無需對函式進行宣告即可直接呼叫。
函式宣告可以在main裡面,也可以在main外面。如果放在main之前,就可以直接定義這個函式:
void func(int arg) //定義
int main()
如果定義放在main之後就要在main之前先宣告這個函式:
void func(int);//宣告,不可省略。
int main()
void func(int arg) //定義
C 函式的宣告定義
include 宣告 extern char mystrstrpoint char dest,char src extern char mystrstrarr char dest,char src extern char mystrcat char dest,char src extern void...
c語言 函式宣告定義總結
巢狀呼叫很好理解,就是在乙個子程式裡呼叫另乙個子程式。void print char a void hello 而鏈式訪問就是把乙個函式的返回值直接當作實參傳遞給下乙個函式。int ret strlen strcat hello world 上例中strcat 的返回值是char型別,是目標串的首位...
C語言 函式(宣告 定義 呼叫)
1 函式的宣告 函式有兩種型別 1 有返回值 前面用 int float double char來定義的,如int even int n 前面的int就是返回值型別,注意最後要加分號。include inteven int n 2 沒有返回值,就用void寫在最前面,如void even int n...