【小发现】golang 编译器对 a*10 的优化
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
从一篇文章中看到,编译器会把 a*10 优化成类似 a<<3 + a<<1,通过位运算和加法来避免更加耗时的操作。
我的朋友实际测试发现,这个写法在 golang 中并没有优化。
于是我怀疑编译器已经做了这样的优化。
今天通过 Compiler Explorer (https://godbolt.org/) 来查看,果然:

编译后:

汇编代码相当于: (a*4 + a)<<1

浙公网安备 33010602011771号