作者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/cn.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