| 
 编译时出现‘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);  |