sequence point / sequencing限定的是单线程代码理论上(“在C++虚拟机上”)的运行过程,它从来不限制实际生成代码的运行过程。编译器生成的代码只需要和标准在单线程的“可观测行为”(i.e.库函数调用)上一致。极端的例子,编译器理论上可以把你算pi的前100位的程序生成为直接打印答案。
【 在 z16166 的大作中提到: 】
: if的条件语句是一个sequence point,什么编译器会重排这个?
: 楼主的这个问题用硬件cache举例最好理解。用编译器指令重排来解释,最好是能把对应的具体某个编译器生成的汇编代码列出来
--
FROM 114.86.90.*