第8章 函数(八)函数的分级保护
2009-03-26 13:00
246 查看
声明:文中观点仅代表个人,其中文字、图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.com QQ:80368704内部函数和外部函数在面向过程的程序设计思想中,蕴藏着很多面向对象的程序设计思想的萌芽,除了前面我们看到的对数据的保护思想外,对函数调用的保护也是这些可贵的萌芽之一.我一直试图用最浅显的语言和最简单的程序实例,说明程序设计的一些原理.不过用简单的程序实例,说明复杂的思想或原理,是一件极难的事情,对于函数调用的说明就是如此. 我们学习标准c的这些原理时:首要的任务是先理解这些原理的意义,如果可能再在程序中应用这些原理;我们将来是一定要进入c++的,c++是面向对象的,对数据和函数的保护原理有了革命性的变化,在标准c中具体的保护技术在c++中大都过时了,但保护的思想被革命性的继承了下来.说这些的意思就是告诉你,保护的思想意义比具体保护技术重要的多,你的任务是首先理解函数保护的意义! 第一点:一个单位的领导,他用谁,谁就有用;如果领导认为你没用,不用你,你在这个单位就不会发挥任何作用.就像电线杆子戳在那里,就像聋子的耳朵----配搭. 第二点:前面我们讲到过变量可以定义成全局变量,可以定义为局部变量,我们可以从定义位置上来快速区别它们,如果一个变量定义在所有函数之外,他就是全局变量,所有的工程函数都可以使用它. 第三点:对于我们本章的例题-----程序4,一切从main()函数开始,而且从main()结束。顾名思义main()----主函数就是这个程序的领导,这应该毫无疑问的,如果main()中不调用max();那么max();摆在那里就没有任何用处;就像电线杆子戳在那里,就像聋子的耳朵----配搭.同样min();average();也是为了main()调用它们完成相应的任务而诞生的.当然,子函数不仅能被主函数调用,子函数之间也可以相互调用. 总而言之一句话:子函数就是要被另外的函数调用的. 反过来说,如果希望工程的所有函数都可以使用某个变量,那么你必须把它定义成全局的。 我们再看一下子函数,既然一个子函数就是要被另外的函数调用的,那么它天生就应该具有全局性,换句话说,子函数天生就是全局的,对外开放的,或者叫外部的,他必须被其他函数唤醒。我们说子函数天生的作用域是全部工程域。 第四点:我们有时也限定子函数的作用域,例如,如果你做了大程序,这个程序是一个工程,这个工程有10个C文件组成,每个C文件中有10个子函数,假设,有一个文件的文件名是prg1.c,其中有一个函数的名字是max(),正常情况下,max()可以被这个工程中所有10个C文件中的子函数调用,但是,现在,我们可以对max()子函数作一个限制,让它只能被prg1.c文件中的子函数调用,其他的C文件中的函数不能调用max(),这需要如下的书写max: ==================援引自谭浩强<C程序设计>P199=========================== 如果定义子函数时在函数名和函数类型的前面加static,例如: static float max(){}; 可以使函数的作用域限制于所在文件,这种函数只能被本文件中的其他函数所调用,它称为内部函数。 于是在不同的文件中有同名的内部函数,互不干扰。这样不同的人可以分别编写不同的函数,而不必担心所用函数是否会与其它文件中函数同名,通常把只能由同一个文件使用的函数和外部变量放在一个文件中,在它们前面都冠以static使之局部化,其他文件不能引用。 ================================================================================================ 在你完成一个具有工程规模的程序之前,上面这些内容只能是雾里看花,水中望月,于是,我只能建议你立即行动,去写个多文件的工程程序,编译连接运行,测试一下,别无他法。 |
相关文章推荐
- 第8章 函数(五)变量的分级保护
- 第8章 函数(四)变量的保护与共享
- C++类保护函数外部调用
- [unix]sigsuspend函数保护代码临界区 使其不被特定信号中断
- 【笔记】 《js权威指南》- 第8章 函数 - 8.2 - 8.3 函数调用 实参 形参
- 【读书笔记:C++ primer plus 第六版 中文版】第8章 函数探幽
- 如何让 Qt 的程序使用 Sleep(主线程没有Sleep函数,但线程可用自带的保护函数Sleep)
- 第8章 函数(十) 小结
- 第8章 分析函数
- [python] 第7章 函数 第8章 模块
- 关于信息安全制度中等级保护与分级保护的异同
- 高质量C++编程_第8章_C++函数的高级特性(1)
- 高质量C++编程_第8章_C++函数的高级特性(2)
- C++友元friend ——利用friend修饰符,可以让设定的外部函数访问对象中被保护数据
- 第8章——函数探幽
- 犀牛——第8章函数 8.4作为值的函数
- 第8章(2) 进程控制 -函数wait和waitpid
- 犀牛——第8章函数 8。8returnret8.8函数式编程
- 进程保护原理Hook函数Openprocess
- C++友元friend --c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作