標題: 一個微軟面試題--關于位結構體 [打印本頁] 作者: 51黑黑黑 時間: 2016-2-12 20:49 標題: 一個微軟面試題--關于位結構體 寫出下列程序在X86上的運行結果。
struct mybitfields
{
unsigned short a : 4;
unsigned short b : 5;
unsigned short c : 7;
}test;
關于位結構體在內存中的存儲問題
Kevin's Theory #2: In a C structure that contains bit fields,if field A is defined in front of field B, then field A alwaysoccupies a lower bit address than field B.
說的是,在C結構體中,如果一個位域A在另一個位域B之前定義,那么位域A將存儲在比B小的位地址中。
如果一個位域有多個位時,各個位的排列順序通常是按CPU的端模式(Endianess)來進行的,即在大端模式(bigendian)下,高有效位在低位地址,小端模式則相反。