1. 程式人生 > >C語言入門:函式定義和呼叫

C語言入門:函式定義和呼叫

一,函式定義

舉例:
例子1: int FunctionDamon1(); /* 這個函式宣告包含了“ 返回值型別 函式名稱 和括號()” , 沒有函式引數,有函式引數的例子如下*/

例子2; int FunctionDamon2(int valuable1, double valuable2 ); /* 括號裡是函式的引數,引數可以是任意的資料型別,引數個數不限制,可以是0(即沒有,如例子1),也可以是一個或多個。 */

例子3: void FunctionDamon3(int val1, double val2 ); /* 這個例子要說明的是,函式前面的void 是宣告函式的返回值型別為空,而前面的例子返回值型別是int。函式的返回值型別可以是任意型別,根據你函式執行結果而定

,比如函式執行後要返回一個整型的數,那麼函式的返回值,型別就是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();
}

總結: 函式在被呼叫的程式碼位置之前,總是要先被宣告