编译时出现‘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 code”之故? 需要在这个调用者的函数体之前声明void write_data_ds1302(uchar address, uchar dat);
|