问题说明了一切.有谁知道以下......
size_t div(size_t value) {
const size_t x = 64;
return value / x;
}
Run Code Online (Sandbox Code Playgroud)
...优化成?
size_t div(size_t value) {
return value >> 6;
}
Run Code Online (Sandbox Code Playgroud)
编译器会这样做吗?(我的兴趣在于GCC).是否有这样的情况,有些情况不是吗?
我真的很想知道,因为每当我写一个可以像这样优化的师时,我会花费一些心理能量,想知道一秒钟的宝贵事迹是否会浪费在一个转变就足够的分裂上.
我的问题是关于处理地址空间的。
我有两个十六进制的地址空间:0x7fffff09和0x7fffff08。
我怎么知道它们是否可以被8或8字节对齐整除?就像检查在C或C ++代码中的样子一样。我知道您通常将mod用作常规数字,如果没有余数,那么就知道它是可整除的。
编辑:地址空间可以是__8,__ 16,__ 32(8位,16位,32位)