[英]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.