手机浏览器扫描二维码访问
听到「隐身术」三个字,我和小弦子眼里瞬间就开始放光,就连旁听的六叔叔注意力都集中了几分。
就在我们都静等老爹下文的时候,老爹却偏偏不着急讲了,又是喝水,又是擦眼镜什么的,一幅不慌不忙的样子,恨得我牙根儿都痒痒。
吊足了我们的胃口后,老爹这才回到自己的电脑旁边徐徐说道:「一直以来,因为我们的程序功能比较简单,所以程序里面就只有一个c文件,但是随着我们的程序越来越复杂,如果还把所有代码都放在一个c文件中就显得特别臃肿,不方便阅读。
其实推箱子这个程序已经暴露出来这个问题了,有时候我们需要查看某行代码的时候,往往要翻阅很久。
于是乎我们就要对程序的功能进行分块,各个块完成相应的一些小功能。
最后把小功能组合在一起,就完成了一个大的功能了。
为了方便管理和阅读,一般我们就会按块来创建c文件,也就是说,程序中可能会存在多个c文件。
在默认情况下,我们定义在一个c文件的全局变量毫无秘密可言,因为其他的c文件可以通过一个关键字——exteal让它显出真身,然后就可以肆无忌惮地把它的脸按在地板上摩擦。
比如说我们在zhangsanc文件里声明了一个全局变量:
intheart=10;
然后还有一个lisic文件,它想看看zhangsanc中的heart是什么,于是它就在自己声明全局变量的地方写了这么一句:
extealintheart;
这个时候在lisic中就能对zhangsanc中的heart为所欲为了。
那这样会不会有什么问题么?」
老爹抛出了他的疑问。
我和小弦子对视了一眼,相互摇了摇头。
问题肯定是有的嘛,不然老爹怎么可能会无的放矢,跟我们扯这么多有的没的。
「既然你们想不到,那我就给你们设置个场景。
假设我们把一个c文件比作是一个人,那么c文件中的变量就是我们身体的器官。
像手啊,脚啊,这种类型的器官暴露在外面倒是没什么,甚至让人摸两下也没什么大问题。
可是像我们的心脏这类器官能够暴露在外面么?哪天随便来个人跟我们说,让我们把心脏给ta看看,摸两下,你说这让不让人害怕?
所以基于安全等各方面的因素,心脏这类的器官必须藏起来,不能虽然让人触碰。
人生在世,谁还没有点小秘密了?c文件也是一样的啊,总得有点自己**吧?
所以说啊,如果我们让一个全局变量只能在当前c文件,也就是声明这个变量的c文件中能够使用,就用static关键字修饰它。
一旦一个全局变量被static关键字修饰,那么其它的c文件就不能在使用exteal关键字获取了。
换句话说,被static修饰的全局变量就在其它c文件面前消失了,这个就是static的隐身功能。
有一点要注意啊,刚刚说的内容都是针对的全局变量,如果是局部变量根本就不存在这个问题。
」
我和小弦子若有所得,就连旁听的六叔叔居然都露出一副「原来如此」的表情。
「static除了能够修饰全局变量,还可以修饰函数哦。
同样的道理,如果一个函数被static修饰了,那么这个函数也就只能在定义它的c文件中使用了。
对于函数而言,如果要在其它的c文件中调用它就不能靠exteal关键字了,而是要靠头文件,也就是h文件。
还记得我们每一个程序都要写的#include么?stdioh就是一个头文件。
好了,光说不练假把式,那接下来我就用代码给你们演示一遍。
假设我们有一个专门对圆进行计算的功能模块,于是定义一个circlec,内容如下:
doublepi=31415926;
doublecirclemianji(doubler)
{
一个稚嫩的小女生,在对的时间遇到了那个似乎自己觉得那个对的人,被爱情冲昏了头脑,为了自己心爱的人貌似什么都能放弃可是好景不长不辞而别又遭遇了车祸的他在几年后的出现给她带来爱人和好朋友的背叛正因为这些才让她变得更强大!...
校花误拉我加入了一个聊天群,发现里面全都是美女,而且天天都晒福利小照片和劲爆小视频,直到她们为了对付现实中的我,开始实行所谓的母猪计划,我潜在群中,倍感压力...
一代战神秦九州重归都市,为弥补遗憾,搅动风起云涌,以不败之资横行四方,诸天震颤。...
作者弱十七的经典小说狂王拦道王妃别想逃最新章节全文阅读服务本站更新及时无弹窗广告小说一朝穿越,再现芳华,遇见他是偶然还是宿命。金戈铁马,马革裹尸,儿女情长亦有家国天下。生而不往,死去无门,纠缠半生终究独自茕茕。...
昆仑少年叶离武道入圣,医术无双,下山入世,调戏性感御姐,拯救傲娇警花,保家卫国,匡扶正义,成就一代宗师!...
看高干是怎么修炼成地主婆的看私生女是怎样修炼成学霸的手握空间能种田,系统交易可益智妖魔恶鬼并不可怕,可怕的是笑着承诺帮你的伪施恩者她感激了多年的女人才是害死她们母女俩的恶魔说来说去还不是因为她是上位失败的小三女儿她就是那个所谓爱情结晶的失败品替婚受辱能想象的苦都尝了个遍重新来过,她想,好人难做,还是学坏容易系统傍身,辣手高干,学霸是她,不代嫁...