C ++优化器将对Clock()的调用重新排序是否合法?
C ++编程语言第4版,第225页显示:编译器可以对代码重新排序以提高性能,只要结果与简单执行顺序相同即可。某些编译器,例如处于发布模式的Visual C ++,将重新排序以下代码: #include <time.h> ... auto t0 = clock(); auto r = veryLongComputation(); auto t1 = clock(); std::cout << r << " time: " << t1-t0 << endl; 变成这种形式: auto t0 = clock(); auto t1 = clock(); auto r = veryLongComputation(); std::cout << r << " time: " …