Keil Logo

Expression evaluation

14.12 Expression evaluation

Describes implementation-defined aspects of the ARM C compiler and C library relating to expression evaluation, as required by the ISO C standard.

The compiler can re-order expressions involving only associative and commutative operators of equal precedence, even in the presence of parentheses. For example, a + (b + c) might be evaluated as (a + b) + c if a, b, and c are integer expressions.
Between sequence points, the compiler can evaluate expressions in any order, regardless of parentheses. Therefore, side effects of expressions between sequence points can occur in any order.
The compiler can evaluate function arguments in any order.
Any aspect of evaluation order not prescribed by the relevant standard can be varied by:
  • The optimization level you are compiling at.
  • The release of the compiler you are using.
Non-ConfidentialPDF file icon PDF versionARM DUI0375H
Copyright © 2007, 2008, 2011, 2012, 2014-2016 ARM. All rights reserved. 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.