Hello,
I have added U postfix to the integer but the problem still is the same.
I read following pages but didn't work. http://www.keil.com/support/docs/3243.htm http://www.keil.com/forum/14703/
#define M(x) (u32)(1U << (x%32)) enum{ eFirst = M(x) ..... eLast = M(31) // generate "integer operation result is out of range" }
Can I avoid this warning?
The implementation is free to choose the underlying type of an enum, but it must cover all values given.
Probably keil choose int and are letting you know your values are too big for what it wants.
You could consider defeat and use a series of defines.
You're right, I had already changed, maybe It would be a good option of Signed/Unsigned enum while define it because I didn't get warning on some compilers.