出现错误提示“error: expected ‘=‘, ‘,‘, ‘;‘, ‘asm‘ or ‘__attribute__‘ before ‘->‘ token xxxx;”的原因

这次来分享一个之前因为疏忽而出现的一个错误例子,话不多说,我们直接先来看错误,错误提示我们:

"error: expected identifier or '(' before 'else' else{"
"error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token  xxxx"
"error: expected identifier or '(' before '}' token}"

一开始我看到这个错误,我觉得应该跟缺少了{}有关,于是仔细看了一下代码发现的确是,代码如下:

if(ComInbuf[1] == 0x06)      //这里缺少了一个括号

	*(u8 *)(VD_SES) = 1;//成功
}
else
{

	*(u8 *)(VD_SES) = 2;//失败
}

看到没有,我少了一个"{“,所以这里才会提示我们上述错误,其实如果把else上面的”}"去掉也可以正确,所以错误里面也提示了我们“}”引起的错误。看到这里大家也就明白为什么会出现上述错误了吧,在特定语法结构下,一个{}不完整就会出现上述错误。所以为什么有些语言会告诉我们{}是才对出现的。

因此,如果有出现该错误的小伙伴,可以参考一下我的这个例子,说不定可以找到原因。

好了,今天的例子就分享到这里了~

本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~

你可能感兴趣的:(C,c语言,经验分享,程序人生,编辑器,嵌入式)