Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Jun 28, 1999

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.

Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date