[英]Bit manipulation of a single bit of an integer or bit masking
我想定義一個寄存器或變量的單個位。 例如:#define Pin5(portA的第5位)//假定porta是16位數據類型。
如何定義變量的單個位,以便可以輕松切換該位並使代碼更輕松。 請注意,我希望位值成為變量的RValue。
例如Pin5 = 1; //將導致partA的第5位為1
鑒於位字段是一個壞主意,我可以為代碼“輕松看”(即將盡可能多的語法包裝到宏中)提出的最干凈的代碼:
#define setbit(n) |=(1<<(n))
#define clrbit(n) &=~(1<<(n))
然后,您的示例代碼將是:
portA setbit(5);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.