观众老爷好!今天讲函数是什么?观众老爷请放松一下,拿出瓜子饮料,茶水,放松听小编一一道来!
观众老爷对计算机应该有所了解,计算机最基本的组成是由cpu(中央处理器)、gpu(显卡)、声卡、网卡、内存、磁盘、南北桥、主板、显示器、键盘、鼠标等硬件组成。说到这里观众老爷估计在抱怨小编,今天不是说函数吗?函数与计算机组成有关系吗?观众老爷待小编庖丁解牛详细道来!
计算机作为我们生活生产的工具,我们要想更好的操纵它,那我们必须要了解它,知道它是如何构成的、如何运作的、有哪些功能等等。只有这样我们才能灵活运用,遇到问题才能知道结症在哪?
计算机编程更多的是操纵计算机硬件的功能,比如我们想让一个字符在屏幕上显示,那经过了哪些步骤呢?又经过了哪些硬件协作呢?
早期计算机并不存在windows和liunx等多任务多线程的系统程序(系统也是程序,不要存在系统不是程序的观点,这是会让人贻笑大方的,系统的程序更接近底层操作,我们编写的应用程序基本很少直接跟硬件打交道了,导致很多编程人员感觉在空中建楼阁,知其然不知其所以然,当然软件编程与硬件分离的好处是不用了解硬件就能进行编程,大大减少了应用程序编程人员的负担。当然如果观众老爷是爱好编程的人,请一定要多学习点硬件知识,当然小编后面也会来几期硬件相关的知识)。
那时候编程都是直接对硬件的查询与操作!随后出现的dos系统更多是一些硬件操作程序的集合,而dos系统的编程更多的是调用dos本身的硬件中断程序和bios的中断功能!随着unix和window的出现,硬件的操作也随之两极分化,只有硬件系统编程人员才会编写硬件驱动程序和系统程序,而应用程序编程人员就不必掌握硬件相关的知识了。但我们应用程序编程人员用到函数和库大多是硬件系统编程人员所编写的硬件操作程序函数库!在编译器编译我们所编写的编程文本文件时,链接程序会把系统函数地址覆盖到我们调用函数的地方。当程序运行时,cpu读到函数地址会直接跳转到函数地址所指向的地方运行。到了这里观众老爷应该明白函数其实就是一个工具箱,当我们调用函数时,cpu会跳到这个工具箱的内存地址当中运行!
工欲善其事必先利其器,在我们编程时,函数库就是我们最好的工具箱,这个工具箱里有着诸多功能函数,有系统函数,网络函数,图形接口函数,数学函数,音频函数,当然还有应用程序编程人员在前几种函数的基础上再次封装而成的功能函数,也可以是简单的算法函数。
当然我们自己也可以编写自己的功能函数,下面我们举个例子(当然是伪代码描述,暂时咱们不涉及具体编程语言,这样我们不会陷入到任何编程语言的条条框框当中,也可以更好的理解编程到底如何进行的,编程语言只是工具,我们不必要为了工具好坏去评判它,这个工具不好咱们可以换一个,当然观众老爷后期也可以开发自己的编程语言):
//首先我们将数据结构和函数分开,程序主体调用函数与初始化数据结构就可以,当然这里的文件和函数都是虚构的并不能被编译成程序
mod.xxx //数据结构文件
//还是长方体比较方便
struct cubemode{
int long = 0;
int wide = 0;
int high = 0;
}
function.xxx //函数文件
@sys.xxx//导入系统函数文件
void cubevolume (int[] step[3]){
volume = step[0] * step[1] * step[2];//体积计算公式
print(这个立方体体积是/n,&volume);//输出体积值,调用的就是系统函数文件里的函数
}
soft.xxx//程序文件
@mod.xxx//导入数据结构文件
@function.xxx //导入函数文件
cubemode cubeone;//初始化一个长方体实例
cubeone.long =10;
cubeone.wide = 3;
cubeone.high = 5;
int[] test = {0 0 0};//初始化一个数组为0
test[0] =cubeone.long;//将长方体的数据赋予数组
test[1] =cubeone.wide;
test[2] =cubeone.high;
cubevolume(test);//调用体积函数
观众老爷是不是理解了函数是什么呢?您的关注、点赞、收藏、转发都是我成长的动力!观众老爷下期再会!