zoukankan      html  css  js  c++  java
  • error: expected declaration specifiers or '...' before 'xxxx'(xxxx是函数形参)

    今天汗颜了一大阵

    早上,在编译我的源代码的时候竟然不通过编译,上个星期六也出现了这种情况,当时不知道怎么弄的后来又通过编译了,可能是原来的.o文件没有make clean 还保存在那里,以至于蒙过去了,我的代码也已经用SVN提交了,真是致命(污染了项目的源码)。好在我当即解决了。

    编译出错提示:

    ……………………

    error: expected declaration specifiers or '...' before 'WEB_VOICE_VAR'

    情形描述:

    结构体变量WEB_VOICE_VAR var  定义在 a.c 中,a.h声明 了 extern WEB_VOICE_VAR var.我在b.c 想使用a.c中已经赋值了的var结构体的成员的值,于是在b.h中#include"../../a.h",然,出现了上面的编译错误。

    原因分析:

    网上搜索,讨论的不少,越看越茫然。

    可能原因是

    b.h中#include "../../a.h" 而a.h中的函数声明中用到了b.h中的结构体或者typedef,那么就会出现在包含a.h的时候b.h中的结构体或者typedef还没有声明,从而陷入错误.

    解决办法:

    将#include "../../a.h"直接放到b.c中,当再次make 的时候,pass了

  • 相关阅读:
    JS中const的使用
    JS的作用域,闭包的理解
    python中函数的默认参数是空数组
    asp.net 导出 Excel
    asp.net 导出 Excel 身份证格式显示格式问题
    HTML5
    JQuery中checkbox选择器
    JQuery中DOM操作(一)
    PL/SQL 创建用户及权限操作
    PL/SQL 表约束
  • 原文地址:https://www.cnblogs.com/pengkunfan/p/3491460.html
Copyright © 2011-2022 走看看