《C Prime Plus》 9.1~9.2 笔记

173 阅读2分钟

学了大半个月,终于进入了C语言重头戏部分。 第九章是《函数》,函数对于任何编程语言都是极为重要的存在,所以第九章打算花尽可能久的时间学,把基础打牢。

9.1和9.2节主要讲述了C语言中函数的意义和函数是如何声明和定义的(基于C11标准)

函数的意义

C语言中,函数是完成特定任务的独立程序代码单元。对于我之前的学习中,作为一个初学者,我先是粗暴的把函数当成是没有感情的代码块,因为之前所接触的函数大多是没有参数,没有返回值的。

善用函数,对于C语言来说是让程序更加模块化,增加代码的可读性。

一个重要的思维模式:黑盒

我们可以把函数理解为一个黑盒,我们给予这个黑盒“原材料”(参数),然后黑盒倒腾倒腾,倒腾出我们需要的“产品”,我们不需要知道黑盒里面到底在干嘛,原理是什么,只需要知道黑盒能给我们什么,我们需要给黑盒什么即可。

函数的声明、定义、参数、返回值

对于目前现行的C11标准,函数需要有声明、定义两个必要内容。C11中,把写在main()前面的作为函数原型,里面包含了函数的形参及其数据类型,但不需要写函数的定义内容;写在main()后面的作为函数的定义部分,在这里就要写入函数具体要实现怎么样的功能;函数的参数分为形参和实参,形参在函数的声明和定义阶段,起到规定函数接收的数据类型的作用(C11的函数原型中的形参起到规避很多种可能的错误的作用),而实参是函数在被使用时,实际接收到的参数,实参是必须要求值的;函数在声明阶段一定要写好函数的返回值类型,无返回值则为void,返回值是函数在表达式中的求值。

return语句

是除了无返回值的函数,其他任何函数都需要有返回值且用retrun语句,retrun语句除了起到返回值的作用,还起到退出函数的代码,继续执行函数外的下一个语句;一个函数内,retrun可以不止一个,它是可以在分支中出现多次的,但大部分C程序员倾向于只有一个retrun语句并作为函数的结尾。