C C 函式宣告和函式定義之不同(例解)

2021-05-09 12:47:40 字數 1498 閱讀 6452

1. 如果函式沒有宣告, 應該在呼叫前定義:

#include 

/* 定義求大值函式 */

int max(int x, int y)  

/* 定義求小值函式 */

int min(int x, int y)  

int main(void)

2. 可以在函式頭宣告:

#include 

int main(void)

/* 定義求大值函式 */

int max(int x, int y)  

/* 定義求小值函式 */

int min(int x, int y)

3. 但一般應在檔案頭宣告:

函式原型的宣告在實際運用中, 會集中宣告在標頭檔案(*.h)裡面.

#include 

/* 在檔案頭宣告要使用的函式 */

int max(int x, int y);

int min(int x, int y);

int main(void)

/* 定義求大值函式 */

int max(int x, int y)  

/* 定義求小值函式 */

int min(int x, int y)

4. 函式可互呼叫, 但不能巢狀:

#include 

void printsum(int x, int y);

int sum(int x, int y);

int main(void)

void printsum(int x, int y) 

int sum(int x, int y)

5. 關於無引數、無返回值的函式:

如果函式沒有引數, 最好是 fun(void), 不過 fun() 也行;

如果函式沒有返回值, 要註明返回型別是 void;

在c/c++中呼叫無參函式也要帶括號.

#include 

void prn(void);

int main(void)

void prn(void)

6. 宣告函式時可以省略形參:

#include 

int sum(int, int, int); /* 省略形式引數 */

int main(void)

int sum(int x, int y, int z)

7. 函式的引數一般不要超過 7 個:

但 c 99 可以支援到 127 個引數.

#include 

int sum(int, int, int, int, int, int, int);

int main(void)

int sum(int a, int b, int c, int d, int e, int f, int g)

變數和函式的宣告與定義(C C )

在c語言編碼經常是 變數與函式的宣告 放在標頭檔案中,它們相應的定義 放在原始檔中。有時候由於 簡單為了方便看,我們並沒有這麼規範的做,而是都寫在了一起。加上變數的宣告和定義同時存在,這樣一來給人的誤解是 覺得宣告即是定義,定義即是宣告。造成這種混淆並不奇怪,因為變數在大多數情況下,宣告的同時就定義...

extern 宣告函式和定義函式

extern 關鍵字放在函式宣告之前 test.h extern int test 如果這樣函式的宣告中帶有關鍵字extern,僅僅是暗示這個函式可能在別的原始檔裡定義。這樣一來,就是在程式中取代include h 來宣告函式,在一些複雜的專案中,比較習慣在所有的函式宣告前新增extern修飾,以防...

函式的宣告和定義

函式的宣告格式 返回值型別 函式名 形參表 函式的定義格式 返回值型別 函式名 形參表 函式可以不用宣告,直接定義,其實是吧定義與宣告放在一起 函式的宣告是告訴編譯器,我有這樣乙個函式,如果在其他地方呼叫時,編譯器就會在整個文尋找函式 函式宣告後,在編譯時,即使函式未被定義,只要函式沒被呼叫,也可以...