[問題] 不同compiler對bit field的處理方式不同?

看板C_and_CPP作者 (brotherD)時間8年前 (2017/07/20 11:47), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
想請問一下,一個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://www.ptt.cc/bbs/C_and_CPP/M.1500522428.A.93A.html

07/20 11:52, , 1F
不好意思,這問題已經解決了。Manual裡面有寫,但我英
07/20 11:52, 1F

07/20 11:53, , 2F
文不好,重看一遍才懂他想表達的意思
07/20 11:53, 2F

07/20 22:36, , 3F
struct成員可以帶長度阿 冒號+bit數量
07/20 22:36, 3F

07/21 06:44, , 4F
他就是在問那個 bit 欄位的底層分配...
07/21 06:44, 4F
文章代碼(AID): #1PS2Uyaw (C_and_CPP)