我有一个函数接受3个unsigned int args func(unsigned int, unsigned int, unsigned int)
。在调用它时我正在通过enum,它被初始化为" 2"作为第一个论点。收到此警告Warning[Pe188]: enumerated type mixed with another type
。如何纠正它?
答案 0 :(得分:2)
问题并没有告诉你究竟要传递的是什么,但看起来函数需要一个enum类型作为参数,因为它提供了一个整数。请记住,enum
是int
的不同类型。
答案 1 :(得分:0)
如果您使用的是C编译器,并且无法更改应调用的函数的定义,以将有问题的枚举类型作为参数:
>=0
。unsigned int
以使编译器静音。 这不太好。
答案 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)。
祝你好运:)