Logical operators, Mikroc – ABL electronic PIC Microcontrollers PIC16 User Manual
Page 115

Logical Operators
Operands of logical operations are considered true or false, that is non-zero or
zero. Logical operators always return 1 or 0. Operands in a logical expression
must be of scalar type.
Logical operators
&&
and
||
associate from left to right. Logical negation operator
! associates from right to left.
Logical Operators Overview
Precedence of logical, relational, and arithmetic operators was chosen in such a
way to allow complex expressions without parentheses to have expected meaning:
c >= '0' && c <= '9';
// reads as: (c>='0') && (c<='9')
a + 1 == b || ! f(x;)
// reads as: ((a+1)== b) || (!(f(x)))
Logical AND (
&&
) returns 1 only if both expressions evaluate to be nonzero, oth-
erwise returns 0. If the first expression evaluates to false, the second expression is
not evaluated. For example:
a > b && c < d;
// reads as: (a>b) && (c // if (a>b) is false (0), (c Logical OR ( || ) returns 1 if either of the expressions evaluate to be nonzero, oth- erwise returns 0. If the first expression evaluates to true, the second expression is a && b || c && d; // reads as: (a && b) || (c && d) // if (a&&b) is true (1), (c&&d) will not be evaluated MikroElektronika: Development tools - Books - Compilers 107 page mikroC - C Compiler for Microchip PIC microcontrollers mikroC making it simple... Operator Operation Precedence && logical AND 5 || logical OR 4 ! logical negation 14
not evaluated. For example: