簡體   English   中英

整數或位掩碼的單個位的位操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM