HOME ABOUT CONTACT

C/C++教學: 第十四課 - 函式(Function) Part2

Rain September 1, 2024
Outline

1. 定義與實現

2. 建立函式來源和標頭檔

定義與實現top

在前一篇初步了解函式的基本語法後,我們可以來談談函式的定義與實現。所謂函式的定義是指如下語法:


int add (int a, int b);
                        

和定義變數一樣,我們可以先定義有個函式叫做add,以及它所需要的參數有a和b。像這樣的設計語法,只要擺在程式碼最上方的位置, 就可以先讓程式知道有一個函式叫做add,便可以在程式碼內部隨地調用函式,而不受程式碼順序的限制。

舉例來說,如前篇提到的範例若改成如下的設計:

                         
int main () {
    cout << "c = " << add(1, 2) << endl;
}

int add (int a, int b) {
    return a + b;
}
                        

此時你會發現在編譯時會出現錯誤,錯誤訊息告訴你它並不曉得add是什麼意思,因為在還沒定義add函式之前,程式就先調用了add,因此產生了錯誤。
這時,就可以用上述的方式來解決這樣的問題,我們可以將定義和實現拆開來:


int add (int a, int b); // 先定義一個函式叫做add
                            
int main () {
    cout << "c = " << add(1, 2) << endl;
}

// add函式的實現如下
int add (int a, int b) {
    return a + b;
}
                        

建立函式來源和標頭檔top

在更前面的篇章C/C++教學: 第三課 - Hello World有提到了如何建立來源檔和標頭檔, 在這裡我們可以用一樣的方法先建立好這兩個檔案。

建立完成之後,我們可以在標頭檔中寫上函式的定義。


/*
 在你建立的標頭檔中(*.h 或 *.hpp)寫下所有你設計的函式定義
*/

int add (int a, int b);
int subtract (int a, int b);

... //寫下所有你設計的函式定義
                        

接著我們再到新建立的來源檔案中,撰寫這些函式的實現,如下:


/*
 在你建立的來源檔中(*.c 或 *.cpp)寫下所有你設計的函式實現
*/

int add (int a, int b)
{
    return a + b;
}

int subtract (int a, int b)
{
    return a - b;
}

... //寫下所有你設計的函式實現
                        

接下來再回到main.cpp來源檔或main.hpp標頭檔,在這兩個其中之一寫上引入我們新建立的標頭檔,即可調用我們剛剛全部定義的函式。


#include<iostream>
#include<xxx.h> // 寫上你新建的標頭檔

int main () {
        cout << "res = " << add(1, 2) << endl; // 調用定義的add函式
        cout << "res = " << subtract(4, 2) << endl; // 調用定義的subtract函式
}

                        

下一篇: 第十五課 - 指標

Last updated:

Related Artical List

  1. C/C++教學: 第十二課 - do while迴圈
  2. C/C++教學: 第十三課 - 函式(Function)
  3. C/C++教學: 第十五課 - 指標(Pointer)

Article List