我有一个纯C语言的mpeg2解码程序,其中使用了大量的全局变量。因为我需要多个解码线程,调用解码程序,所以希望将解码程序中的全局变量消除。
    
    我准备建立一个结构体,把所有全局变量加入这个结构体,然后在main()内初始化结构变量,传递给所有调用全局变量的函数,在这些函数内部,将访问全局变量修改为访问入口参数指向的结构变量的各个成员(就是原来的全局变量),但是因为全局变量的数量很多,超过60个,这样修改的工作量太大,请问有没有更好的办法?    各位达人,请帮忙!

解决方案 »

  1.   

    to ziplj:
      不好意思,我孤陋寡闻,代码大全的全称是什么?to fandh:
      仔细规划,大概没时间了,并且C++我也不懂。那么我觉得比较可行的就是把若干关联程度高的变量封装到一个子结构体中,但是最后仍然封装到一个大结构体中。时间太紧了,重新设计架构什么的,都不太可能了。  非常感谢两位!
      
       
      

  2.   

    to zpf82118
       什么是映射表?可以在C语言中使用吗?
      

  3.   

    直接把所有的变量名称都改成宏定义,然后指向结构变量
    int g1 = 100;
    long g2 = 2345;改成:
    struct XXX
    {
      int v1,
      long v2
    }
    XXX g;
    #define g1 g.v1
    #define g2 g.v2
      

  4.   

    <代码大全2>
    英文<Code Complete 2>