error: expected expression before ‘struct

Linux C/C++编程时常会遇到“error: expected expression before ‘struct’”错误,此错误一般是由未定义的宏(宏里套宏)或参量引起,导致编译器判断当前语句为非法语句,可能有如下几种情况。

1、缺少ioctl.h头文件

调用ioctl函数,用到参数VIDIOC_QUERYCAP时无法编译通过。

解决办法:

#include <sys/ioctl.h>

2、#define错误

比如:

#define X =5

int z=X+1;

解决办法:

修正#define定义,此外,还会遇到复杂表达式宏定义,里面如果仍有未定义的宏或参量,一样会报告本文错误。比如:

#define CTL_HEADER_LEN          (offsetof(struct ntp_control, data))

int shouldbesize = (CTL_HEADER_LEN + count + 3) & ~3;

原因是没有包含offsetof函数的头文件,加入#include <stddef.h>后没有错误了

3、使用了C/C++保留字

比如:

typedef struct {

int x;

}struct;

解决办法:

修改结构体typedef名称,一般不建议使用保留字命名。

error: expected expression before ‘struct,布布扣,bubuko.com

时间: 2024-09-28 18:10:00

error: expected expression before ‘struct的相关文章

C和指针 第十二章 结构体 整体赋值 error: expected expression

定义结构体后整体赋值时发生错误 typedef struct NODE { struct NODE *fwd; struct NODE *bwd; int value; } Node; //声明变量 Node first; first = {NULL, &second, 4}; 错误: error: expected expression 之所以不行是,{}内容被当做语句块了,c语言允许直接对结构体初始化,或者在赋值的时候加上类型说明,或者是逐一赋值. 初始化赋值: typedef struct

Error: expected expression, got &#39;}&#39;

1.错误描述 Error: expected expression, got '}' .globalEval/<@http://localhost:8080/Sys/resource/global/plugins/jquery.min.js:2:2613 [email protected]://localhost:8080/Sys/resource/global/plugins/jquery.min.js:2:2587 [email protected]://localhost:8080/Sys

Error setting expression &#39;XXX‘&#39;[Ljava.lang.with value &#39;[Ljava.lang.String;@10101fb&#39;

ognl报的警告,说明你的格式错误,一般是日期格式错误,格式转换器的应用,id设置的类型不对String 类型,输入了Int类型所以方法一是改变这个类中的id的属性 然后get和set也跟着改变 另一个问题可能是配置文件的位置放错了,我就是这个原因,配置文件要放在被配置的类的那个文件夹内,而不是src中 放在action包当中,我就是这个问题,希望对您有帮助. Error setting expression 'XXX''[Ljava.lang.with value '[Ljava.lang.S

Cocos2d-x 3.0 编译出错 解决 error: expected &amp;#39;;&amp;#39; at end of member declaration

近期把项目移植到cocos2d-x 3.0,在整Android编译环境的时候,出现一大堆的编译出错,都是类似"error: expected ';' at end of member declaration"之类的,看了一些编译错误,都是cocos2d-x库里面的代码出错. 经过分析,怀疑可能是编译环境的问题,由于cocos2d-x使用了非常多C++11的新特性,这有可能导致老的编译器出错,看了一下NDK以下的文件以及toolchains里面的内容,windows编译器默认使用4.6,

could not build module &#39;XXXXXXXX&#39;或者error: expected identifier or &#39;(&#39; 。一堆奇怪的错误————错误根源

一堆奇怪的错误:1??could not build module 'XXXXXXXX' 2??error: expected identifier or '(' 3??EDIT Setting Precompile prefix header = No results in a bunch of syntax errors instead, in stuff like NSObject.h (and other 4??Foundation framework header) 5??EDIT U

expected expression __bridge

expected expression 一般为 标点符号引起的警告 () 或{} // 使用 core foundation 框架,ARC环境下需要:(__bridge NSString*) 修饰或(__bridge id)修饰 NSString * s = (id) (__bridge NSString*)kSecAttrAccount; [wrapper setObject:@"<账号>" forKey:(__bridge id)kSecAttrAccount ]; e

文件上传Error setting expression &#39;upload&#39; with value &#39;[Ljava.lang.String

ognl.MethodFailedException: Method "setUploadImage" failed for object [email protected] [java.lang.NoSuchMethodException: cn.itcast.upload.UploadAction.setUploadImage([Ljava.lang.String;)] at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.ja

Thrift-0.10.0 CenOS 7 编译错误 error: expected &#39;)&#39; before &#39;PRIu32&#39;

Thrift-0.10.0 CenOS 7 编译错误 error: expected ')' before 'PRIu32' 在编译Thrift的时候,无论是Apache官网tar包,还是Github镜像,都会出现各种错误,其中一个比较头疼的就是标题描述的编译错误,经过捣鼓,终于妥协性的搞定了. make时的错误描述: src/thrift/server/TNonblockingServer.cpp: In member function 'void apache::thrift::server

文件上传错误:Error setting expression &#39;uploadImage&#39; with value &#39;[Ljava.lang.String;@5ff8a691&#39;

警告: Error setting expression 'uploadImage' with value '[Ljava.lang.String;@5ff8a691' ognl.MethodFailedException: Method "setUploadImage" failed for object [email protected] [java.lang.NoSuchMethodException: cn.itcast.upload.UploadAction.setUploa