0
所以我瞭解位域,而當我偶然發現this link,只見有什麼用初始化空白位域
unsigned char :0; // start a new byte
我不知道爲什麼會被使用,因爲它浪費內存。它有實際用途嗎?它將在哪裏被實際使用?
編輯:所以我確實讀了this,但除了交叉編譯器兼容性之外,還有其他實際用途嗎?
所以我瞭解位域,而當我偶然發現this link,只見有什麼用初始化空白位域
unsigned char :0; // start a new byte
我不知道爲什麼會被使用,因爲它浪費內存。它有實際用途嗎?它將在哪裏被實際使用?
編輯:所以我確實讀了this,但除了交叉編譯器兼容性之外,還有其他實際用途嗎?
標準實際上解釋了這一:
6.7.2.1 P12:
位字段聲明與沒有聲明,但只有一個冒號和一個寬度,表示 無名位field.126 )作爲一種特殊情況,寬度爲0的位域結構成員表示沒有其他位域將被打包到其中放置了前一個位域(如果有的話)的單元中(如果有的話)。
126:未命名的位域結構成員可用於填充以符合外部施加的佈局。
很難說沒有上下文,但也許原因是爲了獲得序列化目的的特定內存佈局(altough這不是克服好的序列唯一的問題...) – deviantfan 2014-11-24 22:17:34
而且還[這太問題](http://stackoverflow.com/questions/13802728/what-is-zero-width-bit-field) – quantdev 2014-11-24 22:18:30