讀書筆記 struct的成員對齊

2021-04-12 19:38:59 字數 554 閱讀 4980

先看乙個程式:

#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.問程式的輸入結果是什麼...