初始化枚举变量的警告:“etatCourant”声明中的类型默认为“int”[-Wimplicit-int]

问题描述 投票:0回答:1

当我尝试初始化枚举变量时收到警告。这是代码:

enum etatCourant {REPOS, MARCHE_AV, MARCHE_AR, ERREUR};
etatCourant = REPOS; 

这是警告:“etatCourant”声明中的类型默认为“int”[-Wimplicit-int]

我错过了什么吗?

代码按预期工作,但我只是不喜欢警告。我尽量避开他们

c enums declaration compiler-warnings
1个回答
0
投票

您试图声明一个名称与枚举标记名称一致的变量,而没有在变量声明中指定类型说明符

enum etatCourant {REPOS, MARCHE_AV, MARCHE_AR, ERREUR};
etatCourant = REPOS; 
^^^^^^^^^^^

因此根据编译器消息,它假设默认情况下它将具有类型

int

如果你想声明一个枚举类型的变量你需要这样写

enum etatCourant {REPOS, MARCHE_AV, MARCHE_AR, ERREUR};
enum etatCourant courant = REPOS; 

在这种情况下,变量

courant
将具有枚举类型
enum etatCourant

或者声明也可以像这样重写

enum etatCourant etatCourant = REPOS; 

尽管这样的声明可能会让代码的读者感到困惑。

© www.soinside.com 2019 - 2024. All rights reserved.