打印
[DSP编程]

C语言函数

[复制链接]
272|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蒋博1026|  楼主 | 2019-12-23 08:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
函数的本质

1、C语言为什么会有函数

(1)整个程序分成多个源文件,一个文件分成多个函数,一个函数分成多个语句,这就是整个程序的组织形式。这样组织的

好处在于:分化问题、便于编写程序、便于分工。

(2)函数的出现是人(程序员和架构师)的需要,而不是机器(编译器、CPU的需要)。

2、函数书写的一般规则:

第一:遵循一定格式。函数的返回类型、函数名、参数列表等。

第二:一个函数只做一件事。函数不能太长也不宜太短,原则就是一个函数只做一件事情。

第三:传参不易过多。在ARM体系下,传参不易超过4个。如果传参确实需要多,则考虑结构体打包。

第四:尽量少碰全局变量。函数最好用传参返回值和外部交换数据,不要用全局变量。

3、函数是动词、变量是名词(面向对象中分别叫方法和成员变量)

(1)函数将来被编译成可执行代码段,变量(全局变量)经过编译后变成数据或者在运行时变成数据。一个程序的运行需要代码和数据

两方向的结合才能完成。

(2)代码和数据需要彼此配合,代码是为了加工数据,数据必须借助代码来起作用。

4、函数的实质是:数据处理器

(1)程序的主体是数据,也就是说程序运行的主要目标是生成目标数据,我们写代码也是为了目标数据。我们如何得到目标数据:

必须两个因素:程序的输入数据+程序。

(2)函数就是程序的一个缩影,函数的参数列表其实就是为了给函数输入原材料数据,函数的返回值和输出型参数就是为了向外部输出目标数据,

函数的函数体里的那些代码就是加工算法。

(3)函数在静止没有执行的时候,此时只占一些存储空间但是不占用资源(CPU+内存);函数的每一次运行就好像机器的每一次开机运行,运行时

需要耗费资源 (CPU+内存),运行时可以对数据加工生成目标数据,函数运行完毕后释放占用的资源。

(4)整个程序的运行其实就是很多个函数相继运行的连续过程。

5、函数的三要素:定义、声明、调用

(1)函数的定义就是函数体、函数声明是函数原型、函数调用就是使用函数

(2)函数定义是函数的根本,函数定义中的函数名表示了这个函数在内存中的首地址,所以可以用函数名来调用执行这个函数(实质是指针解引用访问);

函数定义中的函数体是函数的执行关键,函数将来执行时主要就是执行函数体。所以一个函数没有定义就是无基之塔。

6、函数原型和作用

(1)函数原型就是函数的声明,说白了就是函数的函数名、返回值类型、参数列表。

(2)函数原型的主要作用就是给编译器提供原型,让编译器在编译程序时帮我们进行参数的静态类型检查。

(3)编译器从源文件的第一行开始编译,遇到函数声明时就会收到编译器的函数声明表中,然后继续向后。当遇到一个函数调用时,就在我的本文件的函数声明

表中去查这个函数,看有没有原型相对应的一个函数(这个相对应的函数有且只能有一个)。如果没有或者只有一部分匹配则会报错或者是报警告;如果发现多个

也会报错或者报警告(函数重复了,C语言中不允许2个函数原型完全一样,这个过程其实是在编译器遇到函数定义时完成的。所以函数可以重复声明,但是不能重复定义)。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

323

主题

1827

帖子

18

粉丝