函数与函数使用

在理解函数时,最好把函数名和指针一起理解,这样你在使用的过程中就会得心应手。



1、函数是C语言程序的主体

2、函数之间是独立的,可以相互调用,但是需要注意避免互相调用的情况(因为很容易出错),确实需要使用时,需要设置好出口条件(return),避免死循环。

3、函数个部分说明:

函数名:编译时,它就是一个标号,代表一个函数的入口地址

参数:函数的输入,允许重载的语言中,编译器把参数作为函数标志的一部分,从而确定一个唯一的函数名

返回值:函数的输入,通常在eax中临时存放,也可以在栈中存放。

函数体:函数的处理过程,函数功能的具体实现。

4、函数调用:通过提供函数名和参数的方式进行函数调用,这个过程有两个细节,一是通过函数名所代表的函数入口地址跳转到函数中执行,二是参数的传递,关于参数的传递,就是说在函数中,会定义新的变量去接受上层函数中变量的值,C实现时是通过压站的方式从栈中开辟出新的空间。作为函数可用的内存变量,然后把参数的值赋值到新开辟出的空间,关于形参、实参、地址传递、值传递的概念如果从内存的角度去理解都是没有意义的。面向过程的语言理解起来应该以内存为根本,其他的都只是现象。

5、函数声明:这一点是由于在程序中,函数和变量都是符号,所以编译器为了明确符号的意义,就要求先定义后使用,但是为了使函数定义更加灵活,可以吧定义放在后面,弹药提前告诉编译器这是一个函数,这就是声明。

6、递归调用:调用函数本身,跟普通的函数调用没有区别,但是应该在函数的开始处设定好出口条件(return),以免进入死循环。

7、局部变量、外部变量:

局部变量通常是临时使用的,只能在当前函数中使用,分配的空间在栈中,体现了程序对内存空间的高效实用,外部变量则是全局变量,在全局去存放,占用的空间要在程序结束时释放。在所在源文件中,从定义开始到源文件结束有效。

全局变量使程序可读性、通用型,内存使用效率变差,尽量不要使用。

发布了41 篇原创文章 · 获赞 3 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章