函数以及面向对象的思想

来源:互联网 发布:ubuntu 更新内核 编辑:程序博客网 时间:2024/05/29 03:21

一、函数的三要素:

        函数名、函数形参、函数返回值


二、写成函数的原因:
        1、代码的维护性提高
        2、代码的复用性提高
        3、叠代开发


三、函数名
        1、函数名要体现函数的功能(自注释性)
        2、函数名是一个指针常量,保存的是函数存放的地址(入口地址)


四、函数的调用:

        1、通过函数名找到函数的入口地址

        2、给形参分配内存空间

        3、传值:把实参变量对应空间的值传给形参

        4、执行函数体中的语句

        5、函数返回并释放内存空间


五、如何确定传值还是传址
        读(不修改)实参变量对应内存空间的值时,传实参变量名
        写(修改)实参变量对应的内存空间的值时,传实参的地址


六、传入参数和传出参数

        传出参数:原本没有值,在经过函数调用后,有了值,相当于函数的返回值
        传入参数:原本有值,在经过函数调用后,传入进去,给函数使用

七、C语言中哪些点体现了面向对象?

         1、宏定义:  我们可以先看一个简单的例子:#define MacroFunction MAX_SIZE 然后在程序里面你调用了大量的MAX_SIZE,但是有一天,你突然发现你要用MAX了,(不过MAX_SIZE又不能不要,很有可能你以后还要调用),这个时候,你就可以#define MacroFunction MAX来达到这样的目的。 

          2、静态的入口函数,保证函数名相同,利用标志位调用子函数:网卡驱动是和pNA+协议栈互连的,那么如何保证pNA+协议栈和不同的驱动都兼容呢,一个简单的办法就是仅仅使用一个入口函数。通过改变如果函数的参数值,来调用内部的各个函数。这样的做法是可以进化的:如果以后想调用新的函数,增加相应的函数参数值就好。如果我们将网卡驱动和pNA+协议栈看作两个层的话,我们可以发现: 层与层之间的互连接口是很小的(这里是一个入口函数),一般是采用名字解析的办法而不是具体的函数调用(利用FunctionCode调用函数,Nilan仅仅实现名字解析的功能)!

          3、CALLBACK函数:如果说静态入口函数实现了一个可管理的宏观的话,CallBack就是实现了一个可进化的微观:它使得一个函数可以在不重新编译的情况下实现功能的添加!

0 0
原创粉丝点击