警告枚举类型与另一种类型混合?

时间:2015-08-18 05:58:05

标签: c enums compiler-warnings

我有一个函数接受3个unsigned int args func(unsigned int, unsigned int, unsigned int)。在调用它时我正在通过enum,它被初始化为" 2"作为第一个论点。收到此警告Warning[Pe188]: enumerated type mixed with another type。如何纠正它?

3 个答案:

答案 0 :(得分:2)

问题并没有告诉你究竟要传递的是什么,但看起来函数需要一个enum类型作为参数,因为它提供了一个整数。请记住,enumint的不同类型。

答案 1 :(得分:0)

如果您使用的是C编译器,并且无法更改应调用的函数的定义,以将有问题的枚举类型作为参数:

  1. 确保您在此上下文中使用的所有枚举值均为>=0
  2. 将传入的变量转换为unsigned int以使编译器静音。
  3. 添加一个解释演员的内容。
  4. 这不太好。

答案 2 :(得分:-1)

枚举和int类型不同; 在你的情况下 - >通过强制转换将Enum转换为int:

   public enum EmloyeeRole
    {
 None = 0,
 Manager = 1,
 Admin = 2,
 Operator = 3
     }

   EmloyeeRole role = EmloyeeRole.Manager;
       int roleInterger = (int)role;

然后你可以将新的int(roleInteger)传递给函数func(unsigned int,unsigned int,unsigned int)。

祝你好运:)