错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__

本文详细解析了一位开发者在向C代码中添加CRC校验时遇到的编译错误,包括错误信息、可能的原因及解决方案,强调了正确使用分号和避免C/C++混合编译的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在向一段代码中添加CRC校验代码时,出现了如下的编译错误:

checking.c: 在函数‘get_int’中:
checking.c:16: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
checking.c:52: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
checking.c:67: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
checking.c:78: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
checking.c:97: 错误:原型函数定义中使用了旧式参数声明
checking.c:97: 错误:expected ‘{’ at end of input

 

是在学习c primer plus第八章的时候8.6 输入确认的时候提示的错误。

   引申:以下的这些错误原因是网上看到的,整理一下

   1.原因:用gcc编译cpp文件。解决:用g++编译cpp文件

   注:用Makefile很容易误用gcc的,类似问题遇到过无数次……还有连接的时候也是,有些版本的make喜欢用gcc连接,直接挂掉。我通常都在头部加一句CC=g++  CFLAGS=-x c,感觉挺好用。

   2.原因:包含头文件时缺少“#”或者函数“{”与“}”没有成对的出现

   3.原因:新加的内容与头文件冲突

    注:error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘XXX’,如果XXX是类名,那么几乎可以肯定地说是你的C文件里包含了C++头文件。楼主遇到的正是这个问题。建议不要使用10楼的方法。最好的方法是,不要去包含c++头文件!如果你的C文件要用到类,干脆直接将C文件改成CPP文件得了。缺少标点符号和全半角的提示是不一样的。

   4.tyepdef int (*psum)(int,int);

   typedef拼写错误,如上,报的错误: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’。

 

所以最后通过检查发现,是少写了一个';'导致的。asm是编译器。

 

转载于:https://my.oschina.net/u/1158051/blog/387859

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值