Is left-to-right or right-to-left order guaranteed for
operator precedence?
Answer:
The simple answer to
this question is neither. The C language does not always evaluate left-to-right
or right-to-left. Generally, function calls are evaluated first, followed by
complex expressions and then simple expressions. Additionally, most of
today’s popular C compilers often rearrange the order in which the expression is evaluated in order to get better
optimized code. You therefore should always implicitly define your operator precedence by using parentheses.
For example, consider the
following expression:
a = b + c/d / function_call() * 5
The way this expression is to be
evaluated is totally ambiguous, and you probably will not get the results you want.
Instead, try writing it by using implicit operator precedence:
a = b + (((c/d) / function_call()) *
5)
Using this method, you can be
assured that your expression will be evaluated properly and that the compiler will
not rearrange operators for optimization purposes.
---------------------------------------------------------------------------------
Posted By Sundeep aka SunTechie
Sundeep is a Founder of Youth Talent Auzzar, a passionate blogger, a programmer, a developer, CISE and these days he is pursuing his graduation in Engineering with Computer Science dept.
Add Sundeep as a Friend on
No comments:
Post a Comment