请教C编程问题
问个编程问题,帮我修改下
我现在2个函数
#define A 6
#define B 1
#define C 4
#define D 7
#define E 9
int buffer[5];//数据可以自由定义,但要节省资源
int GetValue(int channel); //最好别改GetValue(int channel)的形参
void filter(int channel) //filter(int channel) 形参可以任意修改
{
buffer[channel] = GetValue(channel);
}
现在channel为6,1,4,7,9,这5个值。需要使用filter(A),filter(B),filter(C),filter(D),filter(E)。
因为在硬件设计过程中,单片机的AD端口使用的不规则,以前都是从0到4,现在没有顺序了。
所以有什么办法使程序模块化?只需要修改define后面的值来配置。
[解决办法]
加一层映射。
只需要改channels
- C/C++ code
#define A 0#define B 1#define C 2#define D 3#define E 4int channels[]={6,1,4,7,9}void filter(int index) //filter(int channel) 形参可以任意修改{ buffer[index] = GetValue(channels[index]);}