本帖最后由 xingyu1156 于 2017-6-6 17:25 编辑
作死使用函数指针不定参,结果编译失败,求助诸位大佬。
函数指针指向函数原型是void cb(u16 val);
void ADCAdd(u8 chanBit, ...)
{
va_list argp; //定义保存函数参数的结构
u8 channel = 0;
va_start(argp, level);
chanBit &= ~(~((u8)0) << 8); //清不存在通道的无效位
if (chanBit)
{
// AD IO配置
ADCH |= LOBYTE(chanBit); //通道选择
Adc.ChannelS |= chanBit; //载入通道
do
{
do
{
chanBit >>= 1;
channel++;
} while (chanBit);
//载入采样值处理函数
AdcCallback[channel - 1] = va_arg(argp, (void (*))(u16));
} while (chanBit);
}
va_end(argp);
}
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
typedef void (*XXCALLBACK)(u16 val);
这个XXCALLBACK就是这个回调函数的类型了,
然后再试试这种写法:
va_arg(argp, XXCALLBACK);
看看能不能解决问题。
一周热门 更多>