我需要一个宏,在编译时被评估,类似于:
#define FIND_RANGE(x) \
if x>16 \
32 \
elif x>8 \
16 \
elif x>4 \
8 \
elif x>2 \
4 \
elif x>1 \
2 \
else \
1 \
endif \
所以这段代码。
#define S1 FIND_RANGE(7)
unsinged int i = S1;
将被发送到编译器作为
unsinged int i = 8;
这个简单的算法能否在编译时进行评估?