晚上好🌙🌙🌙
本答案参考ChatGPT-3.5
关于Keil51单片机编译报错"requires ANSI-style prototype",其中ANSI是C语言的标准化组织,编译器需要函数的定义来确定其返回类型和参数列表,因此需要函数原型。
解决方案:
1.在代码的开头部分加入包含头文件的语句,例如#include
2.在使用函数前声明函数原型,即在函数使用前加上函数的定义,格式如下:
返回值类型 函数名(参数类型1,参数类型2,...);
例如:
void func(int a, float b);
在声明时不需要写出参数变量名,只需要写出参数类型即可。
3.尽量使用ANSI C函数原型,即在函数参数列表中明确指明每个参数的数据类型,例如:
void func(int a, float b);
而不是:
void func(a, b) int a; float b; { ... }
这种方式在早期的C语言编译器中较为常见,但现代编译器已不再支持。
修改后的代码:
在前面编写的函数前加上函数原型,例如:
void lcd_init(); void lcd_gotoxy(unsigned char x, unsigned char y);
然后在后面编写的函数中直接调用不需要再次声明即可。
参考资料:
1.https://blog.csdn.net/lukdinger/article/details/10097384
2.https://blog.csdn.net/aylass/article/details/53866416
