c語言中=和|=的區別

在配置定時器使用瞭如下語句:

TMOD |= 0x20;       //TMOD: timer 1, mode 2, 8-bit reload

不禁疑問:這與TMOD=0x20有什麼區別呢? 不都是把0x20給TMOD嗎?

 NO。當只需要改變TMOD中的某一位時,就用 |=,如果直接用 = 賦值,會導致TMOD其它位被改變。

如,TMOD=0x20就使除了位5爲1,別的位都爲0了,這在程序中可不是我想看到的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章