【发布时间】:2018-11-11 15:39:21
【问题描述】:
您好,很抱歉,如果您已经在其他地方询问过这个问题。
我有一个全局数组,我的代码是模块化的。每个模块都应该能够向全局数组添加一些处理程序。
基本上是这样的:
#define ITEMS
typedef struct {
uint8_t item0;
uint8_t item1;
} Item_t;
Item_t Items[]={ITEMS};
所以我搜索并尝试实现类似的东西:
ADD_ITEM(0,0);
这个想法是,宏 ADD_ITEM 应该简单地扩展为 {0,0},这应该添加到类似对象的宏 ITEMS。
有什么想法或提示吗?
【问题讨论】:
-
如果您的想法是在每个模块中添加
ADD_ITEM- 那么几乎不可能。 -
@EugeneSh。怎么样?
-
怎么样? “几乎没有”= 没有或没有。
-
抛弃全局数组并使用setter/getter函数?
-
你的意思是不是:
#define ADD_ITEM(x,y) {.item0=(x),.item1=(y)}?您可以像Item_t Items[]={ADD_ITEM(0,0),ADD_ITEM(1,0)};一样使用它
标签: c preprocessor