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
返回值
C语言函数可以返回或不返回该函数的值。如果您不需要从函数返回任何值,请对返回类型使用void
。
我们来看一个C语言函数的简单示例,它不会从函数返回任何值。
没有返回值的示例:
void hello(){
printf("hello c");// 没有返回值,只是打印一个字符串
}
C
如果要从函数返回返回某个/些值,则需要使用任何数据类型,如:int
,long
,char
等。返回类型取决于要从函数返回的值。
我们来看一个C语言函数的简单例子,它从函数返回int
值。
返回值示例:
int get(){
return 10;
}
C
在上面的例子中,我们必须返回10
作为一个值,所以返回类型是int
。 如果要返回浮点值(例如10.2
,3.1
,54.5
等),则需要指定使用float
作为函数的返回类型。如下所示 -
float get(){
return 10.2;
}
C
现在,需要来了解如何调用函数,获取函数的返回值。
C语言函数中的参数
C语言函数可能有0
个或更多个参数。可以在C程序中具有任何类型的参数,如:int
,float
,char
等。参数也称为形式参数。
没有使用参数的函数示例:
void hello(){
printf("hello c");
}
C
具有1个参数的函数示例:
int cube(int n){
return n*n*n;
}
C
具有2个参数的函数示例:
int add(int a, int b){
return a+b;
}
C
在C语言中调用函数
如果函数返回任何值,则需要调用函数来获取函数返回的值。 在C语言中调用函数的语法如下:
variable=function_name(arguments...);
C
(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
C
函数示例
1. 没有return语句的函数示例
下面来看看看C语言函数的简单程序,它不从函数返回任何值。创建一个名称为:function的工程,并在这个工程里创建一个源文件:function-without-params.c,其代码如下所示 -
#include
#include
//定义一个无参数函数,简单地打印一个字符串
void hello() {
printf("hello c programming");
}
void main() {
hello(); // 调用函数
hello(); // 再一次调用函数
hello(); // 再一次调用函数
}
C
执行上面示例代码,得到以下结果 -
hello c programming
hello c programming
hello c programming
Shell
2. 带有return语句的C函数示例
我们来看看C语言中一个带有参数的函数程序。
创建一个源文件:function-with-params.c,其代码如下所示 -
#include
// 定义一函数,返回给定参数值的立方值
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);
}
C
执行上面示例代码,得到以下结果 -
the cube of 2 is : 8
the cube of 5 is : 125
the max value of 10 and 20 is :20