gcc 4.4.4 c89
我在state.c文件中有以下内容:
enum State {
IDLE_ST,
START_ST,
RUNNING_ST,
STOPPED_ST,
};
State g_current_state = State.IDLE_ST;
Run Code Online (Sandbox Code Playgroud)
我尝试编译时遇到以下错误.
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_current_state’
Run Code Online (Sandbox Code Playgroud)
是否有一些在全局范围内声明了枚举类型的变量?
非常感谢任何建议,
pax*_*blo 19
有两种方法可以直接使用C.在任何地方使用全enum名:
enum State {
IDLE_ST,
START_ST,
RUNNING_ST,
STOPPED_ST,
};
enum State g_current_state = IDLE_ST;
Run Code Online (Sandbox Code Playgroud)
或者(这是我的偏好)typedef它:
typedef enum {
IDLE_ST,
START_ST,
RUNNING_ST,
STOPPED_ST,
} State;
State g_current_state = IDLE_ST;
Run Code Online (Sandbox Code Playgroud)
我更喜欢第二个,因为它使类型看起来像第一类int.