关于enum无法引用的问题
在头文件中定义了这样的枚举类型
typedef enum{ EC_CMD_TYPE_NOP=0, EC_CMD_TYPE_APDR, EC_CMD_TYPE_APWR, EC_CMD_TYPE_APRW, EC_CMD_TYPE_FPRD, EC_CMD_TYPE_FPWR, EC_CMD_TYPE_FPRW, EC_CMD_TYPE_BRD, EC_CMD_TYPE_BWR, EC_CMD_TYPE_BRW, EC_CMD_TYPE_LRD, EC_CMD_TYPE_LWR, EC_CMD_TYPE_LRW, EC_CMD_TYPE_ARMW, EC_CMD_TYPE_EXT=255}EC_CMD_TYPE;enum{ EC_CMD_TYPE_NOP=0, EC_CMD_TYPE_APDR, EC_CMD_TYPE_APWR, EC_CMD_TYPE_APRW, EC_CMD_TYPE_FPRD, EC_CMD_TYPE_FPWR, EC_CMD_TYPE_FPRW, EC_CMD_TYPE_BRD, EC_CMD_TYPE_BWR, EC_CMD_TYPE_BRW, EC_CMD_TYPE_LRD, EC_CMD_TYPE_LWR, EC_CMD_TYPE_LRW, EC_CMD_TYPE_ARMW, EC_CMD_TYPE_EXT=255}
[解决办法]
没什么问题啊,贴多一些代码吧。
[解决办法]
没有这个问题吧。
用typedef是可以的,
我项目都这么写。
zengming@linux-008:~/test/test> cat a.h
typedef enum
{
EC_CMD_TYPE_NOP=0,
EC_CMD_TYPE_APDR,
EC_CMD_TYPE_APWR,
EC_CMD_TYPE_APRW,
EC_CMD_TYPE_FPRD,
EC_CMD_TYPE_FPWR,
EC_CMD_TYPE_FPRW,
EC_CMD_TYPE_BRD,
EC_CMD_TYPE_BWR,
EC_CMD_TYPE_BRW,
EC_CMD_TYPE_LRD,
EC_CMD_TYPE_LWR,
EC_CMD_TYPE_LRW,
EC_CMD_TYPE_ARMW,
EC_CMD_TYPE_EXT=255
}EC_CMD_TYPE;
zengming@linux-008:~/test/test> cat a.cpp
#include "a.h"
#include <stdio.h>
int
main( int argc, char **argv )
{
EC_CMD_TYPE test = EC_CMD_TYPE_EXT;
printf("%d\n", test);
return 0;
}
zengming@linux-008:~/test/test> g++ a.h a.cpp
zengming@linux-008:~/test/test> ./a.out
255
[解决办法]
应该没问题,楼主估计发生什么低级错误了,比如头文件防护,你的头文件防护是不是有写错的地方,导致这个enum的声明没有被包含进来?
[解决办法]
可以引用的吧 错误提示是什么