① 一个KEIL编译的C 错误
void Delay(uint m)
缺分号。改为
void Delay(uint);
② keil编译C程序时出现了这样的错误,不知道怎么解决(高分悬赏)
可能是哪个文件里出现了不小心敲闹孙入的 “非法内容”
解决方法:
1.建议使用高版本的编译器,因为高版本编译器会提供较准确薯弯肢的提示信息
2.仔细的逐个检查头文件数世中是否有“非法内容”,没解决进行下一步
3.重建新的工程,逐一加入原有文件(不知你的H文件是怎么组织的,我的这样做比较方便)
以后注意备份
③ keil一个工程文件下可以放多个.c文件吗但是编译时会出现错误,怎么解决
当然可以,但你需要有配套的.h文件让C文件之间可以互相调用。
例如有1.c和2.c两个文件,纯耐1.c中有做中春个全局变量a,有个函数void
b(void),那么就培李有1.h这么写
extern
char
a;
void
b(void);
这样的话,如果2.c想使用a或函数b的话,在2.c的开头加一句#include
"1.h"就能用了。
④ 单片机C语言 keil编译这些错误怎么改
前面定义的全局变量数组wenzi[]最后应该是分号,而不是逗号。
延时子程序中用了库函数_nop_();必须用#include包含头文件intrins.h。因为没加头文件,_nop_()是不识别的,才引起变量p错误。
两个延时子程序前面要加void,否则编译时会警告。
主程序中还有几处错误,修改如下图
⑤ keil编译中出现错误怎么办
1、打开软件project-new project创建一个工程,并为其选择一个存放目录。
2、对工程进行一些配置(project-options for target ‘target 1’)在output选项下的“create HEX file”前打上对号,工程编译之后能够输出一个可以下载的“HEX”文件。
3、为工程添加.C,.h文件,右键单击“source group 1”,应该就可以了。
⑥ 新手用keil4 编译c文件出现错误,求大神解释
#define leftmotostop {IN14=0,IN15=0,IN16=0,IN17=0;}
这句话中,大括号冲宽中的部分作为一个整体,它的返回值应该是最后一个表达式的拆判睁值,即:IN17=0的返回值旅岁,而赋值表达式返回的是左值。
也就是说if(leftmotostop)这个判断语句,永远是0值。
也许keil编译器对大括号及逗号表达式支持的不好,即便能通过编译,你这句代码也会有逻辑问题。
⑦ 单片机c语言用keil编译时出现如下的错误是什么原因'=':illegal type conversion from/to 'void',急求
Write_24C02 ();
下方错误提示显示的是,这个函数返回类型是 void 也就是没有设定返回值,所以使用 = 等号 就产生了语法错误。
⑧ 在keil中一个工程里调用两个c程序 为何一直显示错误 下面两个程序直接帮我调好就行 初学者莫笑话
你是把这两个主程序同时放入一个工程中了吧,这是不行的,必须建两个工程,分别加载一个主答仿程序才行的。如果把两个程序放入一个工程中,就只能有一个清滑纤主函数main(),而让拆另一个写成子函数,由主函数来调用的。
就两个程序,各自编译是没有问题的,问题就是你把两个主程序放在一个工程中了。
⑨ keil的编译错误:error c129:missing';'before'0000'
你的错误代码是 error c129: 这是一个C语言方面的语法错误,说明你的文件被保存为C文件(文件名为.c后缀)。
我用你这段程序放在keil编译器中试验过,当程序保存为c文件并编译时,会出现如你所示的error c129的错误且指向程序的第一句代码处;若将文件另存为汇编文件(文件名为.asm后缀)再进行编译,则不会出现c129的报错。
现在将这段程序保存为.asm文件,并将程序整理为以下形式:
ORG0000H
LJMPSTART
ORG000BH;
LJMPINTT0;
START:MOVR0,#70H
MOVR7,#0CH
INIT:MOV@R0,#00H
INCR0
DJNZR7,INIT
MOV72H,#10
MOV75H,#10
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#03CH
SETBEA
SETBET0
SETBTR0
START1:LCALLSCAN
LCALLKEYSCAN
SJMPSTART1;
DL1MS:MOVR6,#14H
DL1:MOVR7,#19H
DL2:DJNZR7,DL2
DJNZR6,DL1
RET;
DL20MS:
对于以上程序段,不知道整理出来之后是否与你的原代码相同,但其中有一点需要说明,汇编文件中的分号“ ; ” 的作用与C文件中的“// ”作用类似,它后面紧跟的是注释内容。 你这段程序,若按以上整理,那么所有命令后面的分号“; ” 都可以不要的。 不过,也有可能你确实使用了分号的作用,将后面一些命令作了屏蔽处理,则此处不另作说明。
下面将整理后的程序进行编译,会出现以下报错情况:
错误、警告的解释:
第4行的错误原因是:标志符号“INTT0”没有定义;
第18行的错误原因是:标志符号“SCAN”没有定义;
第19行的错误原因是:标志符号“KEYSCAN”没有定义;
第27行的警告原因是:代码结束处没有“END”命令;(注:所有汇编文件结尾处都应有一句“END”命令表示结束)
可以看得出,你这段程序应该不是完整的,另有一部份你没有复制出来。你可以根据以上说明,再结合你的实际情况处理你的程序。 祝你成功!