一、c语言为什么会有函数
- 汇编程序中也有函数这个概念。
- 整个程序分成多个文件,一个文件分成多个函数,一个函数分成多个语句。
- 这种组织的好处在于分化问题便于编写程序便于分工。
- 函数的出现是人的需要而不是机器(编译器,cpu)的需要。
- 函数的目的就是为了实现模块化编程。说白了就是为了提供程序的可移植性。
二、函数书写的一般规则
- 需要遵守一定的格式。函数的返回类型、函数名、参数列表等。
- 一个函数只做一件事。函数不能太长也不能太短,原则上一个函数只能做一件事。
- 传参不宜过多。在ARM体系下,传参不宜超过4个,传参太多考虑结构体打包。
- 尽量少碰全局变量。函数最好用传参返回值和外部交换数据,不要用全局变量。使用了全局变量就破坏了函数的模块化、结构化。
三、函数是动词、变量名是名词(面向对象中分别叫方法和成员变量)
- 函数将来会被编译成代码,变量指的主要是全局变量。变量经过编译后变成了数据(给变量分配空间实质上是把变量变成了数据)。一个程序的运行需要代码和数据两个方面的结合。
- 代码和数据之间相互配合,代码是为了加工数据,数据必须借助代码来起作用。名词性的数据必须经过动词性的加工才能变成最终我们需要产出的数据。这个加工过程就是程序的执行过程。
四、函数的实质:数据处理器
- 程序的主体是数据:程序运行的主要目的是生成目标数据。
- 为了得到目标数据:需要两个因素一是原材料二十加工算法。
- 程序编写和运行是为了把原数据加工成目标函数,程序的实质就是一个数据处理器。
- 函数就是程序的一个缩影,函数的参数列表其实就是未来路给函数输入原材料数据,函数的返回值和输出型参数就是为了向外部输出目标数据,函数的函数体的代码就是加工算法。
- 函数在静止时就好像一台没开动的机器,只占用存储空间,并不占资源(cpu+内存)。 函数的每一次运行就好像机器的每一次开机运行,运行时需要耗费资源,运行时可以对数据加工生成目标数据,函数运行完毕就会释放占用的资源。
- 整个程序的运行就是很多个函数相继运行的过程。