C 编程中的函数

被花括号 ({ }) 包裹的代码块或一些逻辑,用于执行特定的操作。我们已经看到了一些 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 编程语言中有两种类型的函数

  1. 所有内置函数都由这种编程语言支持,称为库函数。我们不必担心库函数内部的逻辑,因为它们存储在头文件中。在我们之前的文章中,我们使用了许多库方法,如 printf()、scanf()、sqrt()、strcpy() 等。
  2. 用户定义函数:除了依赖内置函数,这种语言还允许我们创建自己的函数,称为 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);

}
 Functions In C Programming Example

这是一个 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 次,因为它将帮助您理解我们可以从其他地方多次调用该方法。