我有一个变量(typedef结构),其中包含我项目中多个文件中需要的硬件定义。有没有比使用extern
更优雅的方法?
答案 0 :(得分:2)
我建议你在main()中声明你的结构,并将它传递给需要结构的各种函数,以避免将它作为全局变量。只需在标题中包含结构。
这种方法的好处是:可以更容易地测试你的函数 - 你可以传入模拟对象来模拟各种状态。更清楚地使用结构的位置 - 只有将其作为参数的函数。
答案 1 :(得分:1)
像singleton这样的东西,你可以实现一个getInstance方法。
struct BAR_ *getBarInstance(void)
{
static struct BAR_ instance; /* = getInitializedBar() */
return &instance;
}