正文
大家周末好,我是bug菌~
今天终于安安静静的坐下来分享一些东西,根据今年的一些规划和目标,应该是非常忙的一年,再加上疫情的反复、各大厂的裁员、还有目前国际大环境等等都多多少少影响着我们的生活,跟一些同事和朋友的交流当中我也隐隐约约感受到大家的一丝焦虑和担忧。
其实大可不必这样,一味担心一些未知东西或许仅仅只是一种自耗吧,还是要调整好心态。
好了,今天谈论的话题是C语言中为何没法规避全局变量?为什么突然谈论这个话题,主要是最近有几个粉丝朋友问到了类似的问题。
"bug菌,我代码中全局变量太多了,有没有一种方法不使用全局变量来编写C语言程序?"等等
当时并没有感觉特别惊讶,因为曾经的我也是在这条道路上探索着,只是在C语言编程这条路上走得多一点,相对想得更加明白一点罢了。
我的回答是:"没有办法规避全局变量的~"
1耦合
其实自认为"没有办法规避全局变量的",这个答案相对而言并不是特别专业,却能够让更多的人听懂。
在最开始使用C语言进行项目开发的过程中,都会提示要你用模块化思想来编程,怀着"低耦合,高内聚"的编程理念。
但是你应该没有听说过模块之间无耦合吧,所以耦合和内聚都是相对而言,当采用了一种不是最优的设计思想和方法,便编写出了一套耦合度较高的代码罢了。
而所谓的耦合便是你所划分的各功能模块代码之间的数据共享了。
bug菌一直相信代码中的所有设计都可以在这世间找到类比原型,同样这世间规律也完全可以用程序来进行表达,只是目前的科技水平还并没有达到那么水平,或许人工智能就是一个萌芽吧。
而在C语言中全局变量的使用,便是一种数据共享的方式,同样也是模块化沟通的桥梁。
有朋友该说了,我不进行数据共享便不会使用全局变量了。
比如点了个灯,同时又写了串口通信程序,两者并没有什么联系,各自安好,那确实没有数据共享,也可以不使用全局变量,最多认为你在静态存储区定义了几个变量吧。
但这样的程序又能复杂到什么程度,或实现什么功能呢?基本没有特别大的意义。
2联系
这世间原本就是千丝万缕羁绊着而存在,或许从蝴蝶效应看来就会颇有感触,那么编程中也是一样的,相互之间的存在着某种联系才愈发精彩,而这种联系的表达则少不了数据的共享。
程序员们要用C语言来描述这世间种种规律,使用全局变量还逃得掉吗?
即便有一种语言可以达到不使用类似于全局变量的语法形式,但数据的共享终究逃不了。
虽话说回来,无法规避,但并非没有章法;不加约束,必将带来不少麻烦。
3面向对象
面向对象的程序设计思想就是目前约束全局变量使用的一味良药,面向对象与面向过程都是一种思维方式的存在,并非孰优孰劣。
但就目前软件设计的发展来看,面向对象的程序设计思想在大型程序的设计和把控上有更多的优势。
它能够把各个抽象的个体描绘得更加的直观,这样个体之间的相互联系也就顺理成章的表达和约束。
最后
好了,今天就跟大家分享这么多了,也算是临时兴起,分享一二,觉得还不错,记得点个赞~
最后一个bug,bug菌唯一创作平台
推荐专辑点击蓝色字体即可跳转
?MCU进阶专辑
?嵌入式C语言进阶专辑
?“bug说”专辑?专辑
Linux应用程序编程大全
?专辑
学点网络知识
?专辑
手撕C语言
?专辑
手撕C++语言
?专辑
经验分享
?专辑
电能控制技术
?专辑
从单片机到Linux
预览时标签不可点收录于合集#个上一篇下一篇