C語言入門:函式定義和呼叫
阿新 • • 發佈:2019-02-06
一,函式定義
舉例:
例子1: int FunctionDamon1(); /* 這個函式宣告包含了“ 返回值型別 函式名稱 和括號()” , 沒有函式引數,有函式引數的例子如下*/
例子2; int FunctionDamon2(int valuable1, double valuable2 ); /* 括號裡是函式的引數,引數可以是任意的資料型別,引數個數不限制,可以是0(即沒有,如例子1),也可以是一個或多個。 */
例子3: void FunctionDamon3(int val1, double val2 ); /* 這個例子要說明的是,函式前面的void 是宣告函式的返回值型別為空,而前面的例子返回值型別是int。函式的返回值型別可以是任意型別,根據你函式執行結果而定
例子4: void FunctionDamon4 ( void ); /* 函式的返回值型別和引數都可以為空,當函式的返回值型別為空的時候,void一般不省略,當函式的引數為空的時候一般只寫括號,如例子1,也可以寫void,如例子4。總的來說void可省 */
例子5:完整的一個函式定義例子
int add(){ int a,b,sum a=2; b=3; sum=a+b; printf("sum=%d",sum); return 1; /*返回值為整型,所以返回值型別是int */ }
二,函式的呼叫
舉例:
例子1: 函式要在被呼叫之前被宣告。(這一點和java的不同,java可以在任意檔案宣告,只要擁有呼叫的許可權就可以隨意呼叫)
#include <stdi o.h>
main(){
/* 在這裡呼叫另一個函式 */
Function();
}
void Function(){}; /* 定義了一個新的函式 */
}
上面程式碼編譯通過,但是執行出錯:
意思:函式沒有宣告;
正確的寫法是:
#include <stdi o.h>
/* 在這裡宣告函式 */
void Function();
main(){
/* 在這裡呼叫另一個函式 */
Function();
}
void Function(){}; /* 定義了一個新的函式 */
}
被呼叫的函式必須在被呼叫的位置之前進行宣告,如下;如果函式的定義程式碼本來就在被呼叫的位置之前,則不需要重新宣告
比如:
#include <stdio.h>
/* Function 函式在這裡宣告定義好了 */
int FunctionDamon1(){
};
main(){
/* 函式在前面已經聲明瞭 不需要重新宣告 */
FunctionDamon1();
}
總結: 函式在被呼叫的程式碼位置之前,總是要先被宣告