当前位置: 代码迷 >> 驱动开发 >> c全局变量
  详细解决方案

c全局变量

热度:161   发布时间:2016-04-28 10:06:14.0
c全局变量求助
在几个C源文件中要用到同一个标志位,除了使用全局变量,有什么好方法呢,只限C语言,就是要在不同的文件,不同的函数之间要进行数据交互,一个函数选择性的改变一个变量的值,而另外一个函数要根据这个变量的值做选择性事件,而调用这两个函数也是有条件选择的,该怎么办
------解决思路----------------------
为何不在函数中使用参数呢?这样可以避免硬性的编码。
通过函数的参数传递标志也是可以的。
------解决思路----------------------
如果是单任务系统,不考虑互斥/同步的问题的话,可以考虑简单的实现类似于 类 中的 Get 和 Set 函数供其它源代码调用。
------解决思路----------------------
函数不同时调用也可以传递变量值的,只要定义成静态变量(static)就可以了。可能还要加volatile说明会由其它程序改变其值。不愿意用全局变量的话可以提供一个函数让外部程序调用来改变内部静态变量的值
------解决思路----------------------
不用全局变量也可以实现,在堆空间分配一个sizeof(你的变量)大小的容器,维护这个容器在堆空间的引用计数和指针。可以在不用时回收这个容器。。
  相关解决方案