提示信息

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就去写单片机代码……

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐