The C and C++ standards do not specify the order of evaluation for function arguments. This can lead to subtle portability problems. As I explained in my column last month (“As Precise As Possible”), ...
This is something that has bugged me somewhat, and I haven't found a very clear answer. So you have a function that is supposed to do something. You pass it input and get output. References would be ...