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值。
返回值示例:
在上面的例子中,我们必须返回10作为一个值,所以返回类型是int。 如果要返回浮点值(例如10.2,3.1,54.5等),则需要指定使用float作为函数的返回类型。如下所示
-
float
get(){
return 10.2;
}
|
现在,需要来了解如何调用函数,获取函数的返回值。
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 |
|