单片机C语言编译错误:requires ANSI-style prototype
然后在main函数后面调用play函数:
void INT0_int() interrupt 0
{
while(1)
{ //其中song1、2、3都是数组
if(s==1) paly(song1);
if(s==2) play(song2);
if(s==3) play(song3);
if(s==4)break;
}
}
错误提示为:
error C267: 'paly': requires ANSI-style prototype 展开
需要要把调用的子函数放到main前面,或者在main函数前面先把需要调用的子函数定义声明一下。
requires ANSI-style prototype的意思是:需要ANSI样式原型。
扩展资料
单片机汇编指令是为解决某些特定的问题代码中必须嵌入汇编语言以代替C语言完成的单片机的编程,汇编语言对于程序调试是不可或缺的。它包括:算术操作类指令,布尔变量操作类指令,逻辑操作数指令,控制转移类指令。
直接使用汇编指令编写单片机程序,对硬件的控制更加直接,可以直接操作物理地址,寄存器,端口等;其它更高级的语言对硬件的控制是依赖于类库来实现的。
对于一些对程序大小和运行速度有非常严苛要求的项目,都必须使用汇编指令。C语言只是为了方便编写,与机器打交道的都是2进制代码。
参考资料来源:百度百科-单片机
参考资料来源:百度百科-汇编语言
参考资料来源:百度百科-单片机汇编指令
单片机C语言编译错误:requires ANSI-style prototype是设置错误造成的,解决方法为:
1、打开Keil后选择【File】下的【new】新建一个空白文档。将编辑好的程序源码复制到该文件中。
2、选择左上角的保存按钮进行保存,将弹出保存对话框。
3、选择保存路径和编辑文件名。记住,这里的文件名很重要,如果你是C语言程序的话,加上.c后缀,如果你是用汇编语言,加上.ASM后缀。这样,Keil就能自动识别你的文件类型了。
4、现在你就可以将保存的文件添加到项目中了,项目文件要提前在[Project]中新建。右击选择【Source Group1】点击【Add Files to Group..。
5、在弹出的对话框中选择[文件类型]为All files,这个很关键。然后选择你要添加的文件。点击Add添加。
6、切换到[output]选项卡选中【Create HEX FILE】,就可以在编译成功后自动生成.hex文件。编译按钮在左上角3个按钮,从左到右依次点击,如果源码没错,都可以编译通过了。
你试着手工在编译器中输入一遍,或者将文本拷贝入记事本,保存为ANSI(一般这个比较通用)格式,如若不行,请讲其他格式一一尝试
如若仍不行,恕本人才疏学浅未能解惑