我想定义一个寄存器或变量的位。 例如: #define Pin5(portA的第5位)//假设porta是16位数据类型。
如何定义变量的单个位,以便我可以轻松切换该位,使我的代码更容易在我的眼睛上。请注意,我希望位值成为变量的RValue。
例如,Pin5 = 1; //将导致partA的第5位为1
答案 0 :(得分:0)
鉴于bitfields是一个坏主意,最干净的我已经能够提出代码"轻松的眼睛" (即将尽可能多的语法包装到宏中):
#define setbit(n) |=(1<<(n))
#define clrbit(n) &=~(1<<(n))
然后你的例子的代码是:
portA setbit(5);