函式的定義:
函式的定義就是函式體的實現。函式體就是乙個**塊,它在函式被呼叫時執行,與函式定義相反的是,函式宣告出現在函式被呼叫的地方。函式宣告向編譯器提供該函式的相關資訊,用於確保函式被正確的呼叫。
那麼函式到底是如何定義的呢?請看下面的語法:
型別
函式名(形式引數)
**塊
最簡單的
function_name()
,它簡單的返回。
形式引數列表包括變數名和它們的型別宣告。
**塊包含了區域性變數的宣告和函式呼叫時需要執行的語句。
如果乙個函式無需向呼叫函式返回乙個值,它就被省略。這類函式在絕大多數其他語言中被稱為過程(procedure)。這些函式執行到函式體末尾時隱式返回,他們沒有返回值。 這種沒有返回值的函式在宣告時應該把函式的型別宣告為void。
真函式是從表示式內部呼叫的,它必須返回乙個值,用於表示式的求值。這類函式的return 語句必須包含乙個表示式。
通常,表示式的型別就是函式宣告返回的型別。只有當編譯器可以通過尋常算術轉換把表示式的型別轉換為正確的型別時,才允許返回型別與函式宣告的返回型別不同的表示式。
有些程式設計師喜歡把return 語句寫成下面這個樣子:
return(x);
語法並沒有要求你加上括號,因人而異,表示式兩端加上括號總是合法的。
在c中,子程式不論是否存在返回值,均被稱為函式。呼叫乙個真函式(即返回乙個值的函式)但不在任何表示式中使用這個返回值是完全可能的。在這種情況下,返回值就被丟棄。
1:返回值型別必須和return後面的型別相同
2:return單獨存在的時候,後面不可以寫任何語句,因為執行不到
3:函式可以沒有返回值,當return後面沒有任何返回值的時候,返回值型別就寫void,代表著沒有返回值
當函式沒有返回值的時候,函式後面的return可以省略不寫
4:c語言中函式可以不寫返回值型別,但是如果沒有寫返回值型別,系統會預設返回值型別為int
同時,寫了返回值型別也可以沒有返回值
5:函式不能巢狀、重複定義
函式宣告:
當編譯器遇到乙個函式呼叫時,它產生**傳遞引數並呼叫這個函式,而且接收該函式返回的值(如果有的話)
宣告函式的目的,是告訴編譯器函式的名稱 形參以及返回值。
int getmin(int v1, int v2);
函式的宣告 可以省略形參名稱
int getmin(int, int);
函式的宣告可以相同
int getmin(int, int);
使用函式前,需要在main函式前對使用的函式進行宣告
#include
int getmax(int, int);
void main()
int getmax(int a, int b)
else
}
或者將函式定義在main函式的前面,則不需要宣告#include
int getmax(int a, int b)
else
} void main()
C語言定義和宣告區別
1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明顯。通常變數定義和宣告...
C語言定義和宣告區別
c語言定義和宣告區別 1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明...
C語言中的定義和宣告
定義 指的是在 中定義乙個變數 函式,定義的最顯著的乙個特徵是,執行定義後,編譯器會在記憶體中分配一塊記憶體給所定義的變數或函式,如執行int a b,c 0 都會在記憶體中分配一定的空間以存放這幾個變數。宣告 宣告的目的是在於告訴編譯器,系統中已經有這麼乙個名字是aaa的變數或者函式了,我要用的就...