error: expected declaration specifiers or '...' before 'xxxx'(xxxx是函数形参)

2022年01月15日 阅读数:6
这篇文章主要向大家介绍error: expected declaration specifiers or '...' before 'xxxx'(xxxx是函数形参),主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。


今天汗颜了一大阵ide

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

编译出错提示:ci

……………………源码

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


情形描述:io

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


缘由分析:class

网上搜索,讨论的很多,越看越茫然。变量

可能缘由是搜索

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

解决办法:

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


root