首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问C编程有关问题

2012-06-03 
请教C编程问题问个编程问题,帮我修改下我现在2个函数#define A 6#define B 1#define C 4#define D 7#defin

请教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]);} 

热点排行