C語言函數
C語言中的函數在其他編程語言中也稱爲過程或子程序。要執行任務,我們可以創建函數。一個函數可以被多次調用。 它提供了模塊化和代碼可重用性。
C語言中函數的優點
函數有很多優點。它們分別如下 -
(1)代碼可重用性
通過在CC語言中創建函數,開發人員可以多次調用它。 所以開發人員不需要一次又一次地編寫相同的代碼。
(2)代碼優化
它使代碼優化,我們不需要編寫很多代碼。
假設你要檢查3
個數字(781
,883
和531
)是否是素數。如果不使用函數,需要編寫3
次計算素數邏輯。所以有重複的代碼。
但是,如果您使用函數,則只需將計算的邏輯編寫一次即可重複使用多次。
函數類型
C語言編程中有兩種類型的函數:
- 庫函數:是在C頭文件中聲明的函數,如:
scanf()
,printf()
,gets()
,puts()
,ceil()
,floor()
等。 - 用戶定義的函數:是由C程序員自己創建的函數,以便他/她可以使用它多次。 它可以降低大型程序的複雜性並優化代碼。
函數聲明
C語言中創建函數的語法如下:
return_type function_name(data_type parameter...){
//code to be executed
}
返回值
C語言函數可以返回或不返回該函數的值。如果您不需要從函數返回任何值,請對返回類型使用void
。
我們來看一個C語言函數的簡單示例,它不會從函數返回任何值。
沒有返回值的示例:
void hello(){
printf("hello c");// 沒有返回值,只是打印一個字符串
}
如果要從函數返回返回某個/些值,則需要使用任何數據類型,如:int
,long
,char
等。返回類型取決於要從函數返回的值。
我們來看一個C語言函數的簡單例子,它從函數返回int
值。
返回值示例:
int get(){
return 10;
}
在上面的例子中,我們必須返回10
作爲一個值,所以返回類型是int
。 如果要返回浮點值(例如10.2
,3.1
,54.5
等),則需要指定使用float
作爲函數的返回類型。如下所示 -
float get(){
return 10.2;
}
現在,需要來了解如何調用函數,獲取函數的返回值。
C語言函數中的參數
C語言函數可能有0
個或更多個參數。可以在C程序中具有任何類型的參數,如:int
,float
,char
等。參數也稱爲形式參數。
沒有使用參數的函數示例:
void hello(){
printf("hello c");
}
具有1個參數的函數示例:
int cube(int n){
return n*n*n;
}
具有2個參數的函數示例:
int add(int a, int b){
return a+b;
}
在C語言中調用函數
如果函數返回任何值,則需要調用函數來獲取函數返回的值。 在C語言中調用函數的語法如下:
variable=function_name(arguments...);
(1)variable:變量不是強制性的。如果函數返回類型爲void
,則不能提供變量來接收函數返回的值,因爲void
函數不返回任何值。
(2)function_name:function_name
是要調用的函數的名稱。
(3)arguments:調用C語言函數時需要提供參數。它也被稱爲實際參數(簡稱:實參)。
調用函數的例子:
hello(); //calls function that doesn't return a value
int value=get(); //calls function that returns value
int value2=add(10,20); //calls parameterized function by passing 2 values
函數示例
1. 沒有return語句的函數示例
下面來看看看C語言函數的簡單程序,它不從函數返回任何值。創建一個名稱爲:function的工程,並在這個工程裏創建一個源文件:function-without-params.c,其代碼如下所示 -
#include <stdio.h>
#include <conio.h>
//定義一個無參數函數,簡單地打印一個字符串
void hello() {
printf("hello c programming");
}
void main() {
hello(); // 調用函數
hello(); // 再一次調用函數
hello(); // 再一次調用函數
}
執行上面示例代碼,得到以下結果 -
hello c programming
hello c programming
hello c programming
2. 帶有return語句的C函數示例
我們來看看C語言中一個帶有參數的函數程序。
創建一個源文件:function-with-params.c,其代碼如下所示 -
#include <stdio.h>
// 定義一函數,返回給定參數值的立方值
int cube(int n) {
return n*n*n;
}
// 定義一函數,返回給定兩個參數值的最大值
int max(int a, int b) {
if (a > b) {
return a;
}else {
return b;
}
}
void main() {
int result1 = 0, result2 = 0;
int a = 10, b = 20, c = 0;
result1 = cube(2); // 調用函數
result2 = cube(5);
c = max(a, b); //
printf("the cube of 2 is : %d \n", result1);
printf("the cube of 5 is : %d \n", result2);
printf("the max value of %d and %d is :%d \n", a, b, c);
}
執行上面示例代碼,得到以下結果 -
the cube of 2 is : 8
the cube of 5 is : 125
the max value of 10 and 20 is :20