[英]Syntax error in C
5 enum state {ST_BEFORE_KEY, ST_IN_KEY, ST_BEFORE_VALUE, ST_TERM, ST_ERR};
6
7 typedef struct {
8 state st;
...
上面的代码报告:
error: expected specifier-qualifier-list before ‘state’
使用枚举类型有什么问题?
使用enum state
或包括typedef enum state state
。
枚举标签在 C 中的命名空间与标识符(变量、函数或类型定义)不同。
尝试
enum state {ST_BEFORE_KEY, ST_IN_KEY, ST_BEFORE_VALUE, ST_TERM, ST_ERR};
typedef struct {
enum state st;
...
};
有四种不同类型的命名空间,用于:
编辑
由于OP要求举个例子..
struct foo {
int bar;
int foo;
};
struct bar {
int foo;
struct foo bar;
};
如果你用c++就可以了;
在 c(不是 c++)上,你应该这样写。
5 enum state {ST_BEFORE_KEY, ST_IN_KEY, ST_BEFORE_VALUE, ST_TERM, ST_ERR};
6
7 typedef struct {
8 enum state st;
你需要
typedef struct {
enum state st;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.