跳到主要内容

C 语言用户自定义函数

提示
  1. 用户定义函数:C语言允许根据需求定义函数,这些函数称为用户定义函数,如createCircle()color()函数。
  2. 函数原型、调用和定义:函数原型声明了函数的名称、参数和返回类型;函数调用会将控制权转移到定义的函数;函数定义包含了执行特定任务的代码块。
  3. 参数传递和返回语句:函数可以通过参数传递变量,这些参数在函数定义中被接收;return语句用于结束函数执行并将值返回给调用函数。

函数是执行特定任务的代码块。

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; // 返回语句
}

函数原型

函数原型简单来说就是函数的声明,它指定了函数的名称、参数和返回类型。它不包含函数体。

函数原型向编译器提供了程序中可能会使用到该函数的信息。

函数原型的语法

返回类型 函数名称(类型1 参数1, 类型2 参数2, ...);

在上面的示例中,int addNumbers(int a, int b);就是函数原型,它向编译器提供以下信息:

  1. 函数的名称是addNumbers()
  2. 函数的返回类型是int
  3. 向函数传递了两个int类型的参数

如果用户定义的函数在main()函数之前定义,那么不需要函数原型。

调用函数

通过调用函数,程序的控制权转移到用户定义的函数。

函数调用的语法

函数名称(参数1, 参数2, ...);

在上面的示例中,通过main()函数内的addNumbers(n1, n2);语句进行了函数调用。

函数定义

函数定义包含了执行特定任务的代码块。在我们的示例中,是添加两个数字并返回它。

函数定义的语法

返回类型 函数名称(类型1 参数1, 类型2 参数2, ...)
{
//函数的主体
}

当一个函数被调用时,程序的控制权转移到函数定义。编译器开始执行函数主体内的代码。

向函数传递参数

在编程中,参数指的是传递给函数的变量。在上面的示例中,两个变量n1和n2在函数调用期间被传递。

函数定义中的参数a和b接收传递的参数。这些参数被称为函数的形式参数。

向函数传递参数

传递给函数的参数类型必须与形式参数匹配,否则编译器将抛出错误。

如果n1是char类型,a也应该是char类型。如果n2是float类型,变量b也应该是float类型。

函数也可以在不传递参数的情况下被调用。

返回语句

返回语句终止函数的执行,并将值返回给调用函数。返回语句之后,程序控制权转移到调用函数。

在上面的示例中,result变量的值被返回到main函数。main()函数中的sum变量被赋予这个值。

函数的返回语句

返回语句的语法

return (表达式);

例如,

return a;
return (a+b);

函数返回值的类型必须与函数原型和函数定义中指定的返回类型相匹配。

访问此页面以了解更多关于传递参数和从函数返回值的信息。