struct在多个文件中使用

时间:2014-09-22 07:45:09

标签: c struct extern

我有一个变量(typedef结构),其中包含我项目中多个文件中需要的硬件定义。有没有比使用extern更优雅的方法?

2 个答案:

答案 0 :(得分:2)

我建议你在main()中声明你的结构,并将它传递给需要结构的各种函数,以避免将它作为全局变量。只需在标题中包含结构。

这种方法的好处是:可以更容易地测试你的函数 - 你可以传入模拟对象来模拟各种状态。更清楚地使用结构的位置 - 只有将其作为参数的函数。

答案 1 :(得分:1)

像singleton这样的东西,你可以实现一个getInstance方法。

struct BAR_ *getBarInstance(void)
{
  static struct BAR_ instance;  /* = getInitializedBar() */
  return &instance;
}