同一行代码,不同结果:C/C++表达式求值顺序为何让编译器各行其是

一段代码,在GCC下输出1 2,在Clang下输出2 1,在MSVC下又是另一种结果。这不是编译器的bug,而是C/C++语言规范有意为之的设计——或者说,是一个困扰了程序员三十多年的"特性"。 ...

11 min · 5484 words