SUNCHAOYI @ 2021-09-06 18:10:05
题目中做到 a %= 23 和 a = a % 23,运行速度相同。答案是 false。
运行实测了下发现确实有一定的差异,但不知道原理,求解答。
by cyffff @ 2021-09-06 18:20:56
我觉得一样,是波动吧
by ud2_ @ 2021-09-06 18:21:56
不说明语言?至少在 C++ 中完全没有区别。
by Tan_Wei_Ye @ 2021-09-06 18:58:07
@ud2_ 不说明环境?至少在楼主本地好像有区别。
by ud2_ @ 2021-09-07 00:43:07
那么楼主能分别编译这两份代码,然后看看对象文件有什么区别吗?
本地测试结果:
$ echo 'void fn(int& a) { a %= 23; }' | c++ -x c++ -o a.o -c -
$ echo 'void fn(int& a) { a = a % 23; }' | c++ -x c++ -o b.o -c -
$ diff a.o b.o
$