我写的一个函数,编译时出现‘write_data_ds1302’missing function-prototype 以及‘write_data_ds1302’require ANSI-style prototype 百度了一下,好像是缺少定义声明函数啥的,但我都有定义和声明啊。
这是声明在主函数前的
void write_data_ds1302(uchar address, uchar dat);
这是定义
void write_data_ds1302(uchar address, uchar dat)
{
RST = 0;
SCK = 0;
RST = 1;
write_byte(address); //发送地址
write_byte(dat); //发送数据
RST = 0; //恢复
}
在另外一个函数里调用
write_data_ds1032(writeaddr[num], table[num]); //写入时间数据
其中writeaddr和table是两个数组,定义在函数开头
uchar code table[7]={59, 59, 23, 7, 8, 7, 11}; //秒分时日月礼拜年
uchar code writeaddr[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c}; //写秒分时日月礼拜年的地址
我查不出是啥错误了,谁能给解决解决?
------解决方案--------------------
uchar定义了没?
------解决方案--------------------
是不是函数的形参为uchar,而传入的实参类型为“uchar code”之故?