C语言 函数

函数是一起执行任务的一组语句,每个C程序都有至少一个函数,即 main(),所有最简单的程序都可以定义其他函数。

函数 declaration 告诉编译器函数的名称,返回类型和参数,函数定义提供函数的实际主体。

C标准库提供了程序可以调用的许多内置函数。如, strcat()可以连接两个字符串, memcpy()可以将一个内存位置复制到另一位置,还有更多函数。

定义函数

用C编程语言编写的函数定义的一般形式如下-

 return_type function_name( parameter list ) {
    body of the function
 }

C编程中的函数定义由函数头和函数主体组成,这是函数的所有部分-

  • return_type - 函数可以返回一个值。某些函数不返回值则使用关键字 void 。
  • function_name - 这是函数的名称。
  • parameter - 参数就像一个占位符。
  • body - 函数主体包含用于定义函数函数的语句的集合。

函数示例

下面给出的是名为 max()的函数的源代码,此函数采用两个参数num1和num2,并返回两个之间的最大值.

/* function returning the max between two numbers */
int max(int num1, int num2) {

   /* local variable declaration */
   int result;

   if (num1 > num2)
      result=num1;
   else
      result=num2;

   return result; 
}

函数声明

函数 declaration 告诉编译器有关函数名称以及如何调用该函数的信息,该函数的实际主体可以单独定义。

return_type function_name( parameter list );

对于上面定义的函数max(),函数声明如下:

int max(int num1, int num2);

参数名称在函数声明中并不重要,仅它们的类型是必需的,因此以下也是有效的声明-

int max(int, int);

在一个源文件中定义一个函数并在另一个文件中调用该函数时,需要函数声明,在这种情况下,应在调用函数的文件顶部声明该函数。

调用函数

创建C函数时,您需要定义函数的函数。要使用函数,您将必须调用该函数来执行定义的任务。

要调用一个函数,您只需要传递所需的参数以及函数名,如果函数返回一个值,则可以存储返回的值。如:

    #include <stdio.h>

    /* function declaration */
    int max(int num1, int num2);

    int main () {

       /* local variable definition */
       int a=100;
       int b=200;
       int ret;

       /* calling a function to get max value */
       ret=max(a, b);

       printf( "Max value is : %d\n", ret );

       return 0;
    }

    /* function returning the max between two numbers */
    int max(int num1, int num2) {

       /* local variable declaration */
       int result;

       if (num1 > num2)
          result=num1;
       else
          result=num2;

       return result; 
    }

我们保留了max()和main()并编译了源代码,在运行最终可执行文件时,它将产生以下输出-

Max value is : 200

函数参数

如果函数要使用参数,则它必须声明接受参数值的变量。这些变量称为函数的形式参数。

No. Call Type 描述
1 值传递 对函数内部参数的更改不会对参数产生影响.
2 引用传递 这意味着对参数所做的更改会影响参数.

默认情况下,C使用按值调用传递参数。通常,这意味着函数中的代码无法更改用于调用函数的参数。

取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!