Just a friendly warning: In C, the order of evaluation of function parameters is not clearly defined by the spec. And, in fact, it is different between the iPhone compiler, and the iPhone Simulator compiler. So, to give a trivial example:
C test case
unsigned int i = 0; NSLog(@"%d %d", i++, i++);
This code will output “0 1” on iPhone but “1 0” on the simulator.