Undefined means that it could be both b or c, depending on the compiler and whatever it cares about. If you compile the code you'll get a warning at most. It's even possible that most compilers would generate 01 here. However the standard says that it's undefined so you must never rely on the order of evaluation.