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