我正在尝试创建以下定义,我的源代码在 iOS 应用程序和 C++ ARM 固件之间共享。
#define ASSIGN_MIN_VAL_NB_BITS 7
#define ASSIGN_MIN_VAL_BIT_POS 1
#define ASSIGN_MIN_VAL_BIT_MASK (((2^ASSIGN_MIN_VAL_NB_BITS)-1)<<ASSIGN_MIN_VAL_BIT_POS)
我期望 ASSIGN_MIN_VAL_BIT_MASK 为 0b11111110,但事实并非如此。上面的 2^ 似乎是问题所在。我怎么能声明类似的东西?我尝试使用 pow(x,y) 替换 2^,它可以工作,但我想找到一种方法来声明这些定义而不使用运行时函数(我假设 pow 是运行时函数)。
任何想法,小费不胜感激。