下面我们来介绍C语言的函数的定义与应用:
首先我们讨论一下我们为什么要使用函数,其实我们知道一个C语言本身就有一个函数main函数,他可以用来执行我们所编写的代码,那么既然如此那我们为什么还要
自己再去编写我们自己的函数呢?首先,当我们要写的程序比较小规模时我们实际上是无需编写函数的。不过,如果一旦我们编写代码量比较大的程序的话,就会发
现随着我们代码量的增加,代码的逻辑就会越来越复杂,等到达了一定的规模之后这种复杂程度就会变得不可接受,所以我们需要将一个大规模的代码通过函数拆分
为很多小规模的代码块,以减低程序的复杂程度。其次,我们知道我们在编写程序是经常会用到比如printf、scanf、strcpy、strcmp......等等一些函数,但是我们
发现我们并没有定义这些函数,其实这些函数都是C语言提供的标准函数库内的库函数,其实我们也可以自己写一个函数库来供自己或他人使用。最后就是如果一个程
序规模较大,时间要求又很紧张,那么我们就需要很多人来一起完成这个程序,而函数的应用则可以很好的去支持这种开发方式。综上所述我们使用函数编程时很有必要的......
好了,既然我们已经认识到了函数编程的重要性了,那么下面我们就一起来学习一下如何进行函数式的编程。
最先我们还是看一段代码示例:
首先我来看函数大致的定义与使用,我们首先来看第14行他是声明了一个函数(我们在这里重点强调在C语言里所有的函数都是先声明后使用,绝对不允许使用一个还
未声明的函数,哪怕就在其后声明的函数也不允许使用),我们可以看到这个函数的第一个标示是一个int这代表了这个函数的返回值是一个int后面的sort是这个函数
的名称,而后面的括号就是函数的参数列表最后一对大括号表明函数声明的结束(我们看到在第15行有一个和14行完全一样的函数声明,写在这里事项告诉各位一个函
数可以声明多次,但是只能定义一次)。我们再来看第20行,这就是我们使用函数(函数的调用),当我们调用函数那么程序就不会再继续向下执行,而是跳到函数的
定义处继续执行(也就是第29行),我们看到在函数的定义中写了一个函数的排序算法。最后函数执行完毕,到达了return语句,return语句会返回一个值作为我们函
数的返回值,并且回到我们函数调用的位置(第20行)然后继续向下执行......
接下来我们分析一下函数的返回值:
一个返回类型大致分为两个类型:有返回值和无返回值,同时就C语言以及大多数语言(C/C++/Object-C/C#/java/Python.....)来讲都仅支持返回一个值(但是少数语
言支持多个返回值例如Lua等)。如果函数无返回值就在函数最前使用void关键字,如果函数有返回值就写明返回值的类型(基本数据类型、数组、枚