我正在编写一个非常有限的资源嵌入式处理器.我有一个捕获时间序列事件的结构,我想对不同类型的不同值使用相同的图形函数.像(非常剥离;不要冒出未初始化的值等):
#define GRAPH_ONE 1
#define GRAPH_TWO 2
struct _event_t {
unsigned long timestamp;
int sensorOne;
float sensorTwo;
}
typedef struct _event_t event_t;
event_t[10] MyEvents;
void GraphSensor(byte graphType) {
for (unsigned int i = 0; i < 9; i++) {
// Get minimum value from series
if (MyEvents[i].?????) ...
}
}
Run Code Online (Sandbox Code Playgroud)
如何让我的函数对结构的不同成员进行操作?我可以看到大量的switch (graphType)陈述,但这非常难看.可能很容易有8或10个结构成员.我可以将所有这些移动到一个单独的函数并使每一位数据访问都调用该函数,总是返回一个浮点数(对于我的图表应该没问题).最后我可以转换为C++类,这会打开其他方法.
没有人觉得对.有更好的方法,最好是非常轻便的方法吗?