函数是一起执行任务的一组语句,每个C程序都有至少一个函数,即 main(),所有最简单的程序都可以定义其他函数。
函数声明告诉编译器函数的名称,返回类型和参数,函数定义提供函数的实际主体。
C标准库提供了程序可以调用的许多内置函数。如, strcat()可以连接两个字符串, memcpy()可以将一个内存位置复制到另一位置,还有更多函数。
定义函数
用C编程语言编写的函数定义的一般形式如下-
return_type function_name( parameter list ) { body of the function }
C编程中的函数定义由函数头和函数主体组成,这是函数的所有部分-
return_type - 函数可以返回一个值。某些函数不返回值则使用关键字 void 。
function_name - 这是函数的名称。
parameter - 参数就像一个占位符。
body - 函数主体包含用于定义函数函数的语句的集合。
函数示例
下面给出的是名为 max()的函数的源代码,此函数采用两个参数num1和num2,并返回两个之间的最大值-
/* 函数返回两个数字之间的最大值 */ int max(int num1, int num2) { /* 局部变量声明 */ int result; if (num1 > num2) result=num1; else result=num2; return result; }
函数声明
函数声明告诉编译器有关函数名称以及如何调用该函数的信息,该函数的实际主体可以单独定义。
return_type function_name( parameter list );
对于上面定义的函数max(),函数声明如下-
int max(int num1, int num2);
参数名称在函数声明中并不重要,仅它们的类型是必需的,因此以下也是有效的声明-
int max(int, int);
在一个源文件中定义一个函数并在另一个文件中调用该函数时,需要函数声明,在这种情况下,应在调用函数的文件顶部声明该函数。
调用函数
创建C函数时,您需要定义函数的函数。要使用函数,您将必须调用该函数来执行定义的任务。
要调用一个函数,您只需要传递所需的参数以及函数名,如果函数返回一个值,则可以存储返回的值。如-
#include <stdio.h> /* 函数声明 */ int learnfk_max(int num1, int num2); int main () { /* 局部变量定义 */ int a=100; int b=200; int ret; /* 调用函数获取最大值 */ ret=learnfk_max(a, b); printf( "Max value is : %d\n", ret ); return 0; } /* 函数返回两个数字之间的最大值 */ int learnfk_max(int num1, int num2) { /* 局部变量声明 */ int result; if (num1 > num2) result=num1; else result=num2; return result; }
我们保留了max()和main()并编译了源代码,在运行最终可执行文件时,它将产生以下输出-
Max value is : 200
函数参数
如果函数要使用参数,则它必须声明接受参数值的变量。这些变量称为函数的形式参数。
Sr.No. | Call Type & 描述 |
---|---|
1 |
Call by value 对函数内部参数的更改不会对参数产生影响。 |
2 |
Call by reference 这意味着对参数所做的更改会影响参数。 |
默认情况下,C使用按值调用传递参数。通常,这意味着函数中的代码无法更改用于调用函数的参数。