我有一个类似的代码

A = B|C|D|E;

引发警告“|运算符中的最正括号”

期望表达式需要运算符具有高度优先权,因此尝试了以下方法:
A=(B|C)|(D|E);

另外一个如:
A=(((B|C)|D)|E);

同样的警告仍然存在。

请帮助我解决这个问题。

谢谢,
Sujatha

B,C,D是枚举,E是整数。

最佳答案

您的表达式中确实有一些算术运算符,而不仅仅是B,或者不是C,等等。编译器建议您在任意一个表达式中加上括号,以便读者看到您写的意思。如果您不加括号,那么每个人都必须确切地记住优先级是什么,并且他们必须弄清楚您是否在编写时记得。

试试这个:(B)|(C)|(D)|(E)。

关于C++警告: suggest parentheses around arithmetic in operand of |,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2972020/

10-11 22:39
查看更多