本帖最后由 技术宅 于 2017-7-26 11:34 编辑
#define SEL0 1234
#define SEL1 45678
#define SEL2 4557
#define SEL3 214
#define SEL4 998
如上定义了几个宏定义。
正常情况下,我会这么写。
uint32_t GlobalValueBuff;
void assValue(Nbr)
{
switch(Nbr)
{
case 0:
{
GlobalValueBuff = SEL0;
}break;
case 1:
{
GlobalValueBuff = SEL1;
}break;
case 2:
{
GlobalValueBuff = SEL2;
}break;
case 3:
{
GlobalValueBuff = SEL3;
}break;
case 4:
{
GlobalValueBuff = SEL4;
}break;
}
}
但是如果宏定义多了,几十个,这样很麻烦。 需要写几十个case,太麻烦了而且容易出错。
请问有没有其他的办法进行带参数的宏定义调用对应的宏定义。
如#define VAULE_ASS(X) SELX 这样的功能, 实际试验了一下,编译不过。无法根据形参调用对应的宏定义。
请高人指点。
按楼上各位说的用函数指针数组吧,如果还不够就再写个函数查表
一周热门 更多>