【小发现】golang 编译器对 a*10 的优化

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


从一篇文章中看到,编译器会把 a*10 优化成类似 a<<3 + a<<1,通过位运算和加法来避免更加耗时的操作。
我的朋友实际测试发现,这个写法在 golang 中并没有优化。
于是我怀疑编译器已经做了这样的优化。

今天通过 Compiler Explorer (https://godbolt.org/) 来查看,果然:
image

编译后:
image

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

posted on 2025-07-07 16:39  ahfuzhang  阅读(14)  评论(0)    收藏  举报