被花括号 ({ }) 包裹的代码块或一些逻辑,用于执行特定的操作。我们已经看到了一些 C 语言函数,你可能没有注意到它们。
例如,printf()、scanf()、strcpy() 等是 C 编程语言中的一些内置函数。以下是函数的一些优点。
- 它将帮助我们将大型程序划分为小组。这样我们就可以更快更好地理解和调试程序。
- 多人可以通过为每个人分配不同的函数来处理同一个程序。
- 函数可以避免我们多次编写相同的逻辑。
- 它帮助我们一遍又一遍地调用同一个函数。
C 编程函数语法
C 编程中函数的基本语法如下所示:
Return_Type Function_Name (Parameters)
{
Local Variable Declaration;
Logic;
Executable Statement 1;
……
}
Return_Type:当函数被调用时,它可能返回或不返回一个值。如果它返回任何值,我们必须将 Return_Type 替换为适当的数据类型。例如,int、float、char 等,并且在调用它时,使用 return 关键字返回值。如果它不返回任何值,我们必须将 Return_Type 替换为 void 关键字。不需要 return 关键字。
- Function_Name:它可以是你希望赋予的任何名称,但不能是系统保留关键字。
- Parameters:每个方法根据用户需求接受 0 个或更多参数。在声明参数时,不要忘记适当的数据类型。例如,(int a, int b)。
- 局部变量声明:有时,我们可能需要一些只用于此特定方法的临时变量,然后我们可以将它们声明在方法内部。这不是强制性的,它完全取决于用户需求。请记住,这些 C 变量只对该函数可用;我们无法在外部访问它们。
- 逻辑:任何你想要实现的数学运算、代码或计算。
- 可执行语句:任何 printf 语句,用于打印一些数据。
C 用户定义函数的实现
C 编程语言中有两种类型的函数
- 所有内置函数都由这种编程语言支持,称为库函数。我们不必担心库函数内部的逻辑,因为它们存储在头文件中。在我们之前的文章中,我们使用了许多库方法,如 printf()、scanf()、sqrt()、strcpy() 等。
- 用户定义函数:除了依赖内置函数,这种语言还允许我们创建自己的函数,称为 UDF。例如,如果我们想计算标准差或进行一些数学计算,我们可以将它们放在带有适当名称的独立方法中。然后我们可以多次调用该方法。
要实现用户定义的函数程序,我们必须遵循一些规则,例如
C 编程中的函数声明
它将通知编译器关于返回类型、名称、参数数量和数据类型的信息。
Return_Type Function_Name(Parameters)
例如,
int Add(int, int)
声明是可选的。众所周知,C 语言程序从 main() 函数开始执行。因此,当编译器到达方法调用时,它将向上遍历以检查定义。这意味着,
- 如果我们将定义放在 main() 之前,则无需声明函数。
- 如果我们将定义放在 main() 之后,则强制声明方法,因为它会通知编译器。
调用函数
只不过是使用有效数量的参数和有效数据类型调用原始方法。例如,Add (2, 3)
注意:用户定义函数名应与 编程中的调用名完全匹配。
C 函数定义
这是我们将放置所有逻辑、计算等的地方。我们可以将定义放在 main() 之前或 main() 之后。
例如,
int Add (int a, int b)
{
int Sum;
Sum = a + b;
return sum;
}
注意:如果您定义的方法不是 void 返回类型,请不要忘记 return 关键字。
C 语言中计算 3 个数的和与平均值(使用函数)
在这个程序中,要求用户输入三个数字。然后,通过调用方法,我们将计算这三个数字的和与平均值。
#include <stdio.h>
// Declaration
void Average ( float, float, float );
int main( )
{
float a, b, c;
int x = 4, y= 6, z =5;
printf ("\nPlease Enter 3 Number to find Sum & Average \n");
scanf ( "%f %f %f", &a, &b, &c ) ;
Average (a, b, c);
Average (x, y, z);
}
void Average ( float x, float y, float z)
{
float Sum, Average;
Sum = x + y + z;
Average = Sum/3;
printf ("\n Sum of %.2f, %.2f and %.2f = %.2f", x, y, z, Sum );
printf ("\n Average of %.2f, %.2f and %.2f = %.2f \n", x, y, z, Average);
}

这是一个 C 函数声明。如果您忘记此 void Average (float, float, float) 声明,编译器将抛出错误。
第一个 printf 语句将要求用户输入 3 个数字。下面的语句将把用户输入的值存储在 a、b 和 c 变量中。
在下一行,我们调用了 Average(a, b, c)。当编译器到达这一点时,它将向上遍历以检查 Average() 声明。如果编译器未能识别名称为 Average 的方法,它将抛出错误。
在这种情况下,在向上遍历时,它将在以下位置停止
void Average ( float, float, float );
上述声明将使编译器转到下面的方法
void Average ( float x, float y, float z );
首先,它将检查参数,并且只有在以下情况才会执行
- 传递给函数的参数数量等于声明的参数
- 传递给它的参数数据类型等于声明的参数
我们在函数内部声明了 2 个局部变量,Sum 和 Average。在下一行,我们使用赋值运算符计算了三个数字的和与平均值
Sum = x + y + z;
Sum = 10 + 20 + 30 = 60
Average = Sum / 3;
Average = 60 / 3 = 20;
下面的 printf 语句将和与平均值打印到输出。
printf ("\n Sum of %.f, %.f and %.f = %.2f", x, y, z, Sum );
printf ("\n Average of %.2f, %.2f and %.2f = %.2f\n", x, y, z, Average);
在下一行,我们在 main 中再次调用了 Average()。这次,我们传递了局部变量作为方法参数。我们调用了 2 次,因为它将帮助您理解我们可以从其他地方多次调用该方法。