在C语言中为何没法规避全局变量呢

嵌入式技术

1335人已加入

描述

好了,今天谈论的话题是C语言中为何没法规避全局变量?为什么突然谈论这个话题,主要是最近有几个粉丝朋友问到了类似的问题。

"bug菌,我代码中全局变量太多了,有没有一种方法不使用全局变量来编写C语言程序?"等等

当时并没有感觉特别惊讶,因为曾经的我也是在这条道路上探索着,只是在C语言编程这条路上走得多一点,相对想得更加明白一点罢了。

我的回答是:"没有办法规避全局变量的~"

1、耦合

其实自认为"没有办法规避全局变量的",这个答案相对而言并不是特别专业,却能够让更多的人听懂。

在最开始使用C语言进行项目开发的过程中,都会提示要你用模块化思想来编程,怀着"低耦合,高内聚"的编程理念。

但是你应该没有听说过模块之间无耦合吧,所以耦合和内聚都是相对而言,当采用了一种不是最优的设计思想和方法,便编写出了一套耦合度较高的代码罢了。

而所谓的耦合便是你所划分的各功能模块代码之间的数据共享了。

小编一直相信代码中的所有设计都可以在这世间找到类比原型,同样这世间规律也完全可以用程序来进行表达,只是目前的科技水平还并没有达到那么水平,或许人工智能就是一个萌芽吧。

而在C语言中全局变量的使用,便是一种数据共享的方式,同样也是模块化沟通的桥梁。

有朋友该说了,我不进行数据共享便不会使用全局变量了。

比如点了个灯,同时又写了串口通信程序,两者并没有什么联系,各自安好,那确实没有数据共享,也可以不使用全局变量,最多认为你在静态存储区定义了几个变量吧。

但这样的程序又能复杂到什么程度,或实现什么功能呢?基本没有特别大的意义。

2、联系

这世间原本就是千丝万缕羁绊着而存在,或许从蝴蝶效应看来就会颇有感触,那么编程中也是一样的,相互之间的存在着某种联系才愈发精彩,而这种联系的表达则少不了数据的共享。

程序员们要用C语言来描述这世间种种规律,使用全局变量还逃得掉吗?

即便有一种语言可以达到不使用类似于全局变量的语法形式,但数据的共享终究逃不了。

虽话说回来,无法规避,但并非没有章法;不加约束,必将带来不少麻烦。

3、面向对象

面向对象的程序设计思想就是目前约束全局变量使用的一味良药,面向对象与面向过程都是一种思维方式的存在,并非孰优孰劣。

但就目前软件设计的发展来看,面向对象的程序设计思想在大型程序的设计和把控上有更多的优势。

它能够把各个抽象的个体描绘得更加的直观,这样个体之间的相互联系也就顺理成章的表达和约束。


审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分