0
一直在研究一些代码,并认为尝试实现一些快速变通的定义函数会有点巧妙。然而,当我决定将MostSigBit函数放在一个单独的定义中,并突然构建我的项目开始失败时,所有事情都变得沮丧起来。VS2010中C++中的定义问题
即使使用if-else语句重写了这段代码,没有运气仍然会出现相同的结果!
#define MostSigBit(x) (x&0x80 == 0x80) (x = x<<1^0x1B) : (x <<= 1)
#define MultiplyBy2(x) (x != 0) ? (MostSigBit(x)) : 0
#define MultiplyBy3(x) (x != 0) ? (MostSigBit(x)^x) : 0
那么,你是如何使用它?我们倾向于避免宏观的原因,我们有模板。 (当然,用户代码中的聪明几乎总是一件坏事。) – GManNickG 2011-02-13 09:05:55