You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

初始化枚举变量触发-Wimplicit-int警告,如何消除该警告?

问题原因及解决方法

你的问题出在没有声明枚举类型的变量,直接用枚举类型名去赋值了。

看你的代码:

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

第一行只是定义了名为etatCourant的枚举类型,但第二行的etatCourant被编译器当成了一个新的变量名——因为你没给这个变量指定类型,C语言会默认它是int类型,这就触发了-Wimplicit-int警告。

解决方法

你需要先声明一个该枚举类型的变量,再给它赋值,有两种写法:

  1. 定义枚举时同时声明并初始化变量
enum etatCourant {REPOS, MARCHE_AV, MARCHE_AR, ERREUR} monEtat = REPOS;
  1. 分开定义类型和声明变量
    如果是C语言,需要保留enum关键字:
enum etatCourant {REPOS, MARCHE_AV, MARCHE_AR, ERREUR};
enum etatCourant monEtat = REPOS;

如果是C++,可以省略第二个enum:

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

这样编译器就能识别monEtat是etatCourant枚举类型的变量,不会再出现隐式int的警告。

内容的提问来源于stack exchange,提问作者Classy Fied

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:38:12