定義結構的特殊符號使用問題 |
尚未結案
|
hwmike6979
一般會員 發表:3 回覆:6 積分:1 註冊:2005-07-12 發送簡訊給我 |
|
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
|
hwmike6979
一般會員 發表:3 回覆:6 積分:1 註冊:2005-07-12 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
hwmike6979
一般會員 發表:3 回覆:6 積分:1 註冊:2005-07-12 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
如果要設定某個 unsigned int 的最右邊的 byte, 而其他 byte 不更動的話,我們應該這麼處理
unsigned int aTest;
aTest&=0xffffff00; // 清掉最右邊的 byte
aTest|=(aNewValue&0xff); // 設定 aNewValue 到 aTest 的值
這樣的處理很難讓人理解 如果是用 struct 的方法時,直接用
MSG_HEADER aTest;
aTest.nMsgType = aNewValue; 很容易讓人理解 nMsgType 就是最右邊的 byte!! 這種寫法通常用在對於每個 byte(甚至是每個 bit), 需要精確的控制,但又需要讓人容易理解時。 PS: 該 struct 對於 bit 的控制與 CPU 有相關, LSB 的 CPU(ex: x86) 就是跟上面的例子一樣;如果 CPU 是 MSB 的話, nMsgType 會是指最左邊的 byte!!
|
hwmike6979
一般會員 發表:3 回覆:6 積分:1 註冊:2005-07-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |