什么是函数
第一,函数就是 C 语言的模块,一块一块的,有较强的独立性,可以相互调用,换句话说,C 语言中,一个函数里面可以调用 n 个函数,即大函数调用小函数,小函数又调用“小小”函数。这就是结构化程序设计,所以面向过程的语言又叫结构化语言。
第二,函数就是一系列 C 语句的集合,能完成某个特定的功能。需要该功能的时候直接调用该函数即可,不用每次都堆叠代码。需要修改该功能时,也只需要修改和维护这一个函数即可。
为什么需要函数
第一,将语句集合成函数的好处是方便代码重用。所谓“重用”,是指有一些代码的功能是相同的,操作是一样的,只不过针对的数据不一样,这时就可以将这种功能写成一个函数模块,以后用到这个功能时只需要调用这个函数模块就可以了,不需要再重复地编写同样的代码。这样可以解决大量同类型的问题,避免重复性操作。
第二,将语句集合成函数方便代码的维护。哪个功能出问题了,或者需要修改某个功能,那就只需要修改某个功能的函数就可以了。
所以,函数有利于程序的模块化。这实际上就是面向过程的思想。面向过程语言最基本的单位不是语句,而是函数。
库函数和自定义函数
前面各章中,程序大都只有一个主函数 main(),但是在实际编程中程序往往是由多个函数组成的。
C 语言不仅提供了极为丰富的库函数(几百个),还允许用户定义自己的函数。用户可以将自己的算法编成一个个相对独立的函数模块,然后通过调用来使用这些函数。在实际的C编程中用得最多的就是自己定义的函数。库函数只能提供一些基本的功能,我们所需要的大多数功能还是需要自己写。
不仅如此,在将来要学习的很多语言中,比如 Labview,这些公司在开发这些语言的时候就已经将所有需要用到的函数都模块化了,不再需要自己动手编写模块内部的程序。我们只需要调用这些模块编程即可,这样大大提高了编程的效率,简化了调试的难度。我们甚至不需要知道各个模块内部的程序到底是怎么编写的,我们只需要知道怎么用就行了。
函数的调用
可以说,C 程序的全部工作都是由各式各样的函数完成的。由于采用了函数模块式结构,所以C语言易于实现结构化程序设计,使程序的层次结构清晰,便于程序的编写、阅读和调试。
在 C 语言中,所有函数的定义,包括主函数 main 在内,都是“平行”的。也就是说,在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。但是函数之间允许相互调用,也允许嵌套调用。习惯上将调用者称为主调函数,被调用者称为被调函数。函数还可以自己调用自己,称为递归调用。
此外,main 函数是主函数,它可以调用其他函数,但不允许被其他函数调用。C 程序的执行总是从 main 函数开始的(也是由 main 结束的),就算定义的函数放在 main 的前面,程序仍然从 main 开始执行。如果执行到函数调用则执行被调用的函数,完成函数调用后再返回到 main 函数继续往下执行,最后由 main 函数结束整个程序。一个 C 语言程序必须有且仅有一个主函数 main。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/21503.html