讲一篇通俗易懂的 C 函数

本文详细介绍了C语言中的函数,包括函数的创建、参数、返回值和类型。通过实例展示了函数的原型、定义和使用,强调了函数在程序设计中的重要性,以及如何通过参数和返回值实现函数间的通信。此外,文章还探讨了C语言为何不采用预编译,以及while、for循环、break和continue等程序控制语句的用法。
摘要由CSDN通过智能技术生成

C 语言中一个非常重要的概念 - 函数 (function)。首先就要先给函数下一个定义,函数就是完成特定任务的独立代码单元,这也就是说,一个函数肯定是要为了完成某种功能的,比如一个函数它能够执行加法运算,比如一个函数能交换两个数的值,还有一些函数可能只是为了打印某些东西等等。

函数也可以把很多大的任务拆分成一个个小的任务,通过设计每个小的任务来完成一个大的功能。一个设计优良的函数能够把程序中不需要了解的细节隐藏起来,从而使整个程序结构更加清晰,降低程序的修改难度。

C 语言程序由许多小的函数组成,一个程序会被保存在多个源文件中,每个文件可以单独编译,并可以与库中已编译过的函数一起加载。

下面我们通过一个例子来讨论一下函数是如何创建并使用的。

函数创建以及使用

函数的创建和使用会分为三个步骤:

  • 函数原型 ( function type ):这个是创建函数定义,也叫函数声明,能够表明一个文件中有哪些函数。

  • 函数调用 ( function call ):调用函数的位置,函数被定义出来肯定是要使用它的,在哪里使用的这个函数就被称为函数调用。

  • 函数定义 ( function definition ):这个就是函数的具体要干的什么事儿,也就是函数的具体逻辑是什么。

这么一看,函数和变量简直一模一样了,函数需要原型、调用和定义,而变量也需要这些,只不过变量还可以把原型和定义一起表示。

#include <stdio.h>

int num; // 变量原型 

int sum(int,int); // 函数原型 

int main(void){

 num = 12; // 变量定义 
 int num2 = 11; // 函数原型 + 函数定义 
 
 int all = sum(num,num2); // 变量使用 ,函数使用 
 printf("all = %d",all);
 
 return 0;
} 

// 函数定义 
int sum(int a,int b){
 
 return a + b;
}

上面这段代码很好的列举了变量的定义以及函数的定义。

我们首先定义了一个 num 变量,这个就是变量的原型,然后在 main 函数中使用这个变量,就是变量的定义和使用,当然变量也可以直接使用原型 + 定义的方式( 上面的 num2 ),sum 函数演示了函数的原型、定义和使用。这里注意一点,main 函数比较特殊,它是所有方法的入口,而且 main 函数无需定义原型就能直接使用。

上面这段代码被一起保存在一个文件中,当然你也可以把它们保存在不同的文件中,只不过把它们放在同一个文件中我们在演示的时候比较方便,还有一点就是能够一起进行编译,这两个函数也可以定义在不同的文件中,分别进行编译,这样的好处是使程序更加易于维护,代码读起来更加顺畅,事实上项目中也是采用的单独编译的方式。当然你也可以把所有的功能都写在 main 函数中,只不过这样不易于维护,也不符合项目开发标准。

一个完整的函数定义形同如下:

返回值类型 函数名(参数列表)
{
    函数体(函数的具体功能)
}

注意我们上面说的只是一个完整的函数定义,而不是每个函数必须都要有返回值类型、参数列表、函数体,只有函数名是必须的(这个肯定好理解)。

当然也有函数定义出来什么都没有做,这就相当于是一个空函数,C 语言默认是允许空函数出现的,比如下面函数就是一个空函数。

sort(){}

sort 函数不执行任何操作也不返回任何值,这种函数可以在程序开发期间用于保留位置,留待以后再填充代码

程序其实就是一些变量和函数的集合,函数之间的通信可以通过函数参数、返回值来进行,函数通过传递参数,进行一系列的逻辑计算后,把返回值返回回去,以此达到函数交流、通信的目的。

对于函数来说,我们需要了解的两个关键点是参数列表返回值

函数参数

对于上面的 sum 函数来说,它的函数参数有两个,分别是 int 类型的 a 和 b,像这种在函数定义的括号中的变量被称为函数参数,这两个变量 a 和 b 也叫做形式参数,简称形参。

和定义在函数中的变量一样,形式参数也是局部变量,这些都属于函数私有的,作用域范围都是从进入函数开始起作用到函数执行完成后作用结束。

当函数接受参数时,函数原型用逗号分隔的列表指明参数的数量和类型,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值