函数是执行特定任务的代码块。
C 允许您根据需要定义函数。这些函数称为用户定义函数。例如
假设您需要创建一个圆并根据半径和颜色为其着色。您可以创建两个函数来解决此问题
createCircle()
函数color()
函数
示例:用户定义函数
这是一个将两个整数相加的示例。为了执行此任务,我们创建了一个用户定义的 addNumbers()
。
#include <stdio.h>
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, ...);
在上面的示例中,在 main()
函数中使用 addNumbers(n1, n2);
语句进行函数调用。
函数定义
函数定义包含执行特定任务的代码块。在我们的示例中,是相加两个数字并返回它们。
函数定义语法
returnType functionName(type1 argument1, type2 argument2, ...) { //body of the function }
当调用函数时,程序的控制权会转移到函数定义。然后,编译器开始执行函数体内的代码。
将参数传递给函数
在编程中,参数是指传递给函数的变量。在上面的示例中,在函数调用期间传递了两个变量 n1 和 n2。
参数 a 和 b 在函数定义中接受传递的参数。这些参数称为函数的形参。

传递给函数的参数类型和形参必须匹配,否则编译器将报错。
如果 n1 是 char 类型,那么 a 也应该是 char 类型。如果 n2 是 float 类型,那么 b 也应该是 float 类型。
函数也可以在不传递参数的情况下调用。
return 语句
return 语句终止函数的执行并将值返回给调用函数。程序控制在 return 语句之后转移到调用函数。
在上面的示例中,result 变量的值被返回给 main 函数。main()
函数中的 sum 变量被赋值为该值。

return 语句语法
return (expression);
例如,
return a; return (a+b);
从函数返回的值的类型以及在函数原型和函数定义中指定的返回类型必须匹配。
访问此页面以了解有关从函数传递参数和返回值的更多信息。