What is evaluation order of function parameters in C?

It is compiler dependent in C. It is never safe to depend on the order of evaluation of side effects. For example, a function call like below may very well behave differently from one compiler to another:

filter_none

edit
close

play_arrow

link
brightness_4
code

void func (int, int);
    
int i = 2;
func (i++, i++);

chevron_right


There is no guarantee (in either the C or the C++ standard language definitions) that the increments will be evaluated in any particular order. Either increment might happen first. func might get the arguments `2, 3′, or it might get `3, 2′, or even `2, 2′.

Source: http://gcc.gnu.org/onlinedocs/gcc/Non_002dbugs.html



My Personal Notes arrow_drop_up


Article Tags :
Practice Tags :


4


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.