提示信息
Keil5
error C141: syntax error near ‘int’, expected ‘__asm’
Keil4
error C141: syntax error near ‘int’
解决方案:
int a;
int main(){
a=1;
int b=2;
}
c不支持中途定义,把变量定义放到函数中的最前面
原理
c是不可以中途定义的(c++显然可以),那么为什么会报这个奇怪的错呢?
对报错信息的解读:
syntax error near ‘int’, expected ‘__asm’
__asm是表明后面的语句是汇编语句,用法是
__asm (汇编语句)
__asm{
(汇编语句)
}
我没写过汇编,具体参见https://blog.csdn.net/wcccg/article/details/78496940
可是没有汇编为什么会报汇编的错呢?因为int刚好是汇编的一种操作符(interrupt routine),表示中断,具体参见https://blog.csdn.net/sagittarius_warrior/article/details/53128613
keil在编译的时候无法理解这句语句,于是便找了一个理由,但是这个理由可能和你的错误没有关系
顺便说一句:
keil4的报错是error C141: syntax error near 'int’没有后面的expected ‘__asm’,连问题出在哪里都不知道= =,所以还是下个新版keil5吧,还支持中文编码。
问题还是出自于自己只学了c++没学c就去写单片机代码……