C语言 - 函数类型

C语言 - 函数类型 首页 / C语言入门教程 / C语言 - 函数类型

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

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

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,并返回两个之间的最大值-

/* 函数返回两个数字之间的最大值 */
int max(int num1, int num2) {

   /* 局部变量声明 */
   int result;
 
   if (num1 > num2)
      result=num1;
   else
      result=num2;
 
   return result; 
}

函数声明

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

无涯教程网

return_type function_name( parameter list );

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

int max(int num1, int num2);

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

int max(int, int);

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

调用函数

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

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

#include <stdio.h>
 
/* 函数声明 */
int learnfk_max(int num1, int num2);
 
int main () {

   /* 局部变量定义 */
   int a=100;
   int b=200;
   int ret;
 
   /* 调用函数获取最大值 */
   ret=learnfk_max(a, b);
 
   printf( "Max value is : %d\n", ret );
 
   return 0;
}
 
/* 函数返回两个数字之间的最大值 */
int learnfk_max(int num1, int num2) {

   /* 局部变量声明 */
   int result;
 
   if (num1 > num2)
      result=num1;
   else
      result=num2;
 
   return result; 
}

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

链接:https://www.learnfk.comhttps://www.learnfk.com/c-programming/c-functions.html

来源:LearnFk无涯教程网

Max value is : 200

函数参数

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

Sr.No.Call Type & 描述
1 Call by value

对函数内部参数的更改不会对参数产生影响。

2 Call by reference

这意味着对参数所做的更改会影响参数。

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术管理实战36讲 -〔刘建国〕

MySQL实战45讲 -〔林晓斌〕

Netty源码剖析与实战 -〔傅健〕

TensorFlow 2项目进阶实战 -〔彭靖田〕

打造爆款短视频 -〔周维〕

全链路压测实战30讲 -〔高楼〕

林外 · 专利写作第一课 -〔林外〕

手把手带你写一个MiniSpring -〔郭屹〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

好记忆不如烂笔头。留下您的足迹吧 :)