The Order of Evaluation of Function Arguments

The order of evaluation of function arguments is unspecified. This means that for a function that takes the arguments (a, b, c), any permutation of this set is a valid argument evaluation sequence. To demonstrate that, you could write a function f() and call it like this:

   bool  x; //global  f( g(false), 1, x, 3);

Suppose that g(false) changes the value of x. You cannot tell which value of x is passed to f() as its third argument–it could be either the value of x before or after the call to g(false). Therefore, you should avoid writing code that relies on a specific evaluation order of function arguments, as it is bad programming practice.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: