是否由编译器优化了整数除法?

Ant*_*ony 3 c++ optimization division

首先,我觉得我必须为自己辩护.我知道我可能不应该担心这种事情,过早优化和什么不是.我知道.我问这个纯粹是因为我好奇并且不能(或者不知道如何)自己找到解决方案.

编译器通常的做法是优化常数整数除法吗?像这样的东西:

const int FOUR = 4;
const int TWO = 2;
int result = FOUR / TWO;
Run Code Online (Sandbox Code Playgroud)

优化为:

const int FOUR = 4;
const int TWO = 2;
int result = 2;
Run Code Online (Sandbox Code Playgroud)

编辑:我非常清楚答案从编译器到编译器各不相同,如果它是常见的做法我很好奇.

Ben*_*Ben 6

是的,这实际上是普遍的做法,事实上如果你的编译器不这样做,你确实有一个非常不寻常的编译器.