作者zzss2003 (brotherD)
看板C_and_CPP
標題[問題] 不同compiler對bit field的處理方式不同?
時間Thu Jul 20 11:47:06 2017
想請問一下,一個struct裡面的member被宣告為unsigned的變數,代表這個struct的size
就是4byte(在GCC平台下),那假如我裡面的成員總共的大小不到4byte,那是不是代表其他
的空間就被浪費掉了?
我會有這個疑問是我目前在用PIC的XC8編譯器,裡面header檔對register(8bit)各個腳位
的定義都是用unsigned(在XC8為2byte大),對於一個記憶體空間非常有限的MCU,不太可能
每個register都浪費一個BYTE吧?
所以我在想,會不會XC8可以在struct裡面自動把這個type型別轉成1byte寬(我只想問可不
可以達到這個功能)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.26.157
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1500522428.A.93A.html
1F:→ zzss2003: 不好意思,這問題已經解決了。Manual裡面有寫,但我英 07/20 11:52
2F:→ zzss2003: 文不好,重看一遍才懂他想表達的意思 07/20 11:53
3F:推 chuegou: struct成員可以帶長度阿 冒號+bit數量 07/20 22:36
4F:→ LPH66: 他就是在問那個 bit 欄位的底層分配... 07/21 06:44