先看乙個程式:
#include
using namespace std;
#pragma pack(8)
struct example1
;struct example2
;#pragma pack()
int main(void)
;size最大為short的2位元組。故char成員a、c都以2位單位對齊,結果為6
若改為:
struct naturalaign
;其結果為12
制定對界:
可以通過偽指令#paogma pack(n)來改變預設的對界條件。編譯器間按照n個位元組對齊,使用偽指令#paogma pack( )來取消自定義位元組對齊方式
注意:如果#paogma pack(n)中n大於結構體中最大成員的size,則不起作用,任按照size最大成員對界
#paogma pack(n)
struct naturalign
;#paogma pack( )
當n為4,8,16時,對其方式均為一樣為12。當n為2時,結果為8
struct的成員對齊
struct 的成員對齊 intel 微軟等公司曾經出過一道類似的面試題 include pragma pack 8 struct example1 struct example2 pragma pack int main int argc,char argv 問程式的輸入結果是什麼?答案是 8 1...
struct的成員對齊
1struct 的成員對齊 intel 微軟等公司曾經出過一道類似的面試題 include pragma pack 8 struct example1 struct example2 pragma pack int main int argc,char argv 問程式的輸入結果是什麼?答案是 8 ...
struct的成員對齊
intel 微軟等公司曾經出過一道類似的面試題 1.include 2.pragma pack 8 3.struct example1 4.8.struct example2 9.14.pragma pack 15.int main int argc,char argv 16.問程式的輸入結果是什麼...