設定或清除特定的位

2021-08-01 06:30:28 字數 469 閱讀 1774

嵌入式系統總是要求使用者對變數或暫存器進行位操作。給定乙個整型變數a,寫兩段**,第乙個設定a的bit 3,第二個清除a的bit 3.在以上兩個操作中,要保持其它位不變。

(1)不知道如何下手,表示自己從沒做過任何嵌入式系統的工作

(2)用bit fields。bit fields是被扔到c語言死角的東西,它保證你的**在不同編譯器之間是不可移植的,同時也保證了你的**是不可重用的。

(3)用#define和bit masks操作。這是乙個有極高可移植性的方法,是應該被用到的方法。

最佳的解決方案為:

#define bit3 (0x1 << 3)

static int a ;

void set_bit3(void)

void clear_bit3(void)

在這裡,bit3用來計算需要操作的位,|=和&=分別用來指定位置1和位置0 。

清除(設定)eclipse的workspace記錄

原文 在使用eclipse進行開發的時候,首先要選擇workspace。一些workspace是不會再被使用的,可是switch workspace時它老是在那礙眼,怎麼清楚它呢?在eclipse資料夾中找到這個檔案即可 eclipse configuration settings org.ecli...

斷點的設定以及清除

經檢驗,可以用 斷點指的是在程式 的某一行上設乙個標記,程式執行到這裡時將暫停,由偵錯程式控制程式的執行。程式中可以設定多個斷點,並能給斷點設定條件。在 編輯器中根據不同的顏色檢視當前執行的情況。例如,斷點通常用紅底白字表示,當前執行的 行用藍底白字表示。這種功能可以使使用者對除錯狀態一目了然。斷點...

setfacl設定特定目錄的許可權

現有一目錄是虛擬機器和linux共享的,但是每次程式呼叫新建的檔案都發現沒有許可權。於是指定特定目錄及其子目錄下新建的檔案或目錄對於使用者qhfz都有讀寫執行的許可權 r表示遞迴 m表示設定檔案acl規則 setfacl r m d u qhfz rwx data2 resourcecase set...