zoukankan      html  css  js  c++  java
  • 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名称,一般不建议使用保留字命名。

  • 相关阅读:
    C语言枚举类型使用简介
    C实现单链表(转)
    不同数据库数据类型
    Informix 常用命令
    工作了
    修改route使用有线/无线同时连接内外网
    Perl 时间函数
    Linux 系统命令
    SQL SERVER 触发器示例
    Informix 函数
  • 原文地址:https://www.cnblogs.com/zhouhbing/p/3858789.html
Copyright © 2011-2022 走看看