编译器是咋保证生成指令的有效性的

这是个伪命题……事实上编译器不能保证生成指令的有效性。C和C++都有很多在标准中写明属于undefined的坑,此时编译器可以自行决定按编译器的某种理解去生成代码,也可以生成无效代码(是的,有时甚至是故意导致崩溃的代码)。此外,有时,即使程序员写的代码是完全正确的,编译器由于 bug 也可能会产生错误的代码(这种情况比较少见,因为编译器的 bug 往往影响面会比较广,因此很快会被人发现和修正,但是常在河边走,想要鞋上不湿是不现实的)。如果你的问题是编译器如何完成编译任务(毕竟,编译器的唯一目的便是生成正确的代码),这个话题就太大了……
■网友
很难…没记错的话VS2013,VS2013的各个Update的release notes中不乏修复了may generate incorrect code.之类的描述


    推荐阅读