ERROR: was not declared in this scope

listenxu 2008-04-29 04:14:27
我在A.h中声明了一个枚举类型;然后在B.h的函数参数中使用了这个枚举类型。编译器报错“A_enum was not declared in this scope”
是怎么回事? 多谢!

======A.h=========
A.h
typedef enum A_enum
{
a_1,
a_2,
a_3
}A_enum;
===================

======B.h==========
B.h

extern void B_FUN(A_enum a);
=================


=> complier report "A_enum was not declared in this scope"
...全文
13732 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yock116 2011-01-06
  • 打赏
  • 举报
回复
这个应该不是没有包含头文件的原因,a_1是函数指针吗?我在Gcc下编译遇到了这个问题,有人知道怎么解决吗。
BizSpark 2010-06-08
  • 打赏
  • 举报
回复
include了 还是 不行.
listenxu 2008-04-29
  • 打赏
  • 举报
回复
多谢!
独孤过儿 2008-04-29
  • 打赏
  • 举报
回复
两个不相关的文件,你要是还不include,系统里面那么多文件,你觉得编译器能智能到了解你的心意,知道你想用哪个文件中的数据吗?
listenxu 2008-04-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jiuchang 的回复:]
include "a.h"

extern只是声明说别的地方定义的内容此处可以使用,比如变量,函数等
但是类型的声明不在此列
你可以在a.cpp里定义一个enum对象,然后extern过来,这样就可以使用这个变量
[/Quote]

我只是想使用这个自己定义的枚举类型。对于类型声明,一定 要用include吗?
jiuchang 2008-04-29
  • 打赏
  • 举报
回复
include "a.h"

extern只是声明说别的地方定义的内容此处可以使用,比如变量,函数等
但是类型的声明不在此列
你可以在a.cpp里定义一个enum对象,然后extern过来,这样就可以使用这个变量

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧