mikroC

making it simple...

Logical Operators

mikroC - C Compiler for Microchip PIC microcontrollers

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

Operator

Operation

Precedence

 

 

 

&&

logical AND

5

 

 

 

logical OR

4

 

 

 

!

logical negation

14

 

 

 

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, otherwise 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<d)

// if (a>b) is false (0), (c<d) will not be evaluated

Logical OR () returns 1 if either of the expressions evaluate to be nonzero, otherwise returns 0. If the first expression evaluates to true, the second expression is not evaluated. For example:

a && b c && d; // reads as: (a && b) (c && d) // if (a&&b) is true (1), (c&&d) will not be evaluated

 

 

page

 

MikroElektronika: Development tools - Books - Compilers

107