標(biāo)題: 一個(gè)微軟面試題--關(guān)于位結(jié)構(gòu)體 [打印本頁(yè)] 作者: 51黑黑黑 時(shí)間: 2016-2-12 20:49 標(biāo)題: 一個(gè)微軟面試題--關(guān)于位結(jié)構(gòu)體 寫(xiě)出下列程序在X86上的運(yùn)行結(jié)果。
struct mybitfields
{
unsigned short a : 4;
unsigned short b : 5;
unsigned short c : 7;
}test;
關(guān)于位結(jié)構(gòu)體在內(nèi)存中的存儲(chǔ)問(wèn)題
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.
說(shuō)的是,在C結(jié)構(gòu)體中,如果一個(gè)位域A在另一個(gè)位域B之前定義,那么位域A將存儲(chǔ)在比B小的位地址中。
如果一個(gè)位域有多個(gè)位時(shí),各個(gè)位的排列順序通常是按CPU的端模式(Endianess)來(lái)進(jìn)行的,即在大端模式(bigendian)下,高有效位在低位地址,小端模式則相反。