C 用户定义函数
在本教程中,您将借助示例学习在C语言编程中创建用户定义的函数。
函数是执行特定任务的代码块。
C允许您根据需要定义函数。这些函数称为用户定义函数。例如:
假设您需要创建一个圆并根据半径和颜色为其着色。您可以创建两个函数来解决此问题:
- createCircle() 函数
- color() 函数
示例:用户定义的函数
这是添加两个整数的示例。为了执行此任务,我们创建了一个用户定义的addNumbers()。
示例
#include <stdio.h>
int addNumbers(int a, int b); //函数原型
int main()
{
int n1,n2,sum;
printf("输入两个数字: ");
scanf("%d %d",&n1,&n2);
sum = addNumbers(n1, n2); // 函数调用
printf("sum = %d",sum);
return 0;
}
int addNumbers(int a, int b) //函数定义
{
int result;
result = a+b;
return result; //返回语句
}
函数原型
函数原型只是函数的声明,用于指定函数的名称,参数和返回类型。它不包含函数体。
函数原型向编译器提供信息,该函数以后可以在程序中使用。
函数原型的语法
returnType functionName(type1 argument1, type2 argument2, ...);
在上面的示例中,函数原型int addNumbers(int a, int b);为编译器提供了以下信息:
- 函数的名称是 addNumbers()
- 函数的返回类型是 int
- 类型的两个参数int传递给函数
如果在main()函数之前定义了用户定义的函数,则不需要函数原型。
调用函数
程序的控制权通过调用转移到用户定义的函数。
函数调用的语法
functionName(argument1, argument2, ...);
在上面的示例中,使用main()函数内部的语句进行函数addNumbers(n1, n2);调用。
函数定义
函数定义包含执行特定任务的代码块。在我们的示例中,将两个数字相加并返回。
函数定义的语法
returnType functionName(type1 argument1, type2 argument2, ...)
{
//函数体
}
调用函数时,程序的控制权将转移到函数定义中。并且,编译器开始在函数体内执行代码。
将参数传递给函数
在编程中,参数是指传递给函数的变量。在上面的示例中,在函数调用期间传递了两个变量n1和n2。
参数a和b接受函数定义中传递的参数。这些参数称为函数的形式参数。
传递给函数的参数类型和形式参数必须匹配,否则,编译器将引发错误。
如果n1是char类型,a也应该是char类型。如果n2为浮点型,则变量b也应为浮点型。
也可以在不传递参数的情况下调用函数。
return 语句
return语句终止函数的执行并将值返回给调用函数。返回语句之后,程序控制权将转移到调用函数。
在上面的示例中,result变量的值返回到主函数。main()函数中的sum变量被分配了该值。
return语句的语法
return (expression);
例如,
return a;
return (a+b);
从函数返回的值的类型与函数原型和函数定义中指定的返回类型必须匹配。