Replacing problematic code example in ES.41

This commit is contained in:
Kalman Keri 2015-10-27 19:50:12 +01:00 committed by Kálmán Kéri
parent 792b831e7a
commit 6029fc813d

View File

@ -8412,13 +8412,14 @@ Avoid errors. Readability. Not everyone has the operator table memorized.
##### Example ##### Example
if (a && b == 1) // OK? const unsigned int flag = 2;
if (a & b == 1) // OK? unsigned int a = flag;
if (a & flag != 0) // bad: means a&(flag != 0)
Note: We recommend that programmers know their precedence table for the arithmetic operations, the logical operations, but consider mixing bitwise logical operations with other operators in need of parentheses. Note: We recommend that programmers know their precedence table for the arithmetic operations, the logical operations, but consider mixing bitwise logical operations with other operators in need of parentheses.
if (a && b == 1) // OK: means a&&(b == 1) if ((a & flag) != 0) // OK: works as intended
if (a & b == 1) // bad: means (a&b) == 1
##### Note ##### Note