亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

VC++中內存對齊實例教程

2020-01-26 15:22:34
字體:
來源:轉載
供稿:網友

內存對其是VC++程序設計中一個非常重要的技巧,本文即以實例講述VC++實現內存對其的方法。具體分析如下:

一、概述

我們經??吹角?sizeof(A) 的值的問題,其中A是一個結構體,類,或者聯合體。

為了優化CPU訪問和優化內存,減少內存碎片,編譯器對內存對齊制定了一些規則。但是,不同的編譯器可能有不同的實現,本文只針對VC++編譯器,這里使用的IDE是VS2012。

#pragma pack()是一個預處理,表示內存對齊。布局控制#pragma,為編譯程序提供非常規的控制流信息。

二、結構體的大小的規則

結構體大小是處理器位數和結構體內最長數據元素所占字節數二者中較小的那一個的整數倍。

比如說,假設處理器位數為n,結構體內最大數據元素所占字節數為m。

處理器為32位,n = 4;結構體內最大數據類型為short,m = 2; n > m;結構體大小為m的整數倍,反之亦然。

注意:有些雖然是64位的操作系統,但是編譯器卻是32位的,此時位數為32.

class A{   int a;   char b;   short c;};sizeof(A)為8,為4的整數倍。struct B{   short a;   short b;   short c;};

sizeof(B)為6,為2(sizeof(short))的整數倍。

注意:C++中的結構體與類只有一個區別,就是結構體成員默認是public,而類默認是private。

class X{public:  double a;  float b;  int c;  char d;};

sizeof(X)為20,為4(處理器位數)的整數倍。

三、#pragma pack(n)

#pragma pack(n)中的n默認是4,即處理器位數32,但我們可以自己定義它的大小。

#pragma pack(1)class A{public:  int a;  char b;  short c;};

此時sizeof(A)為7,為1(#pragma pack(1))的整數倍。

#pragma pack(1)  class X{  public:    double a;    int b;    short c;    char d;  };

sizeof(X)為15,為1(#pragma pack(1))的整數倍。

#pragma pack(4)  class X{  public:    double a;    int b;    short c;    char d;  };

sizeof(X)為16,為4(#pragma pack(4))的整數倍。

#pragma pack(8)  class X{  public:    double a;    int b;    short c;    char d;  };

sizeof(X)為16,為8(#pragma pack(8) 或者 sizeof(double))的整數倍。

四、內存對齊

結構體中數據元素所在內存地址由兩個因素決定。

一是#pragma pack(n) 中的n,二是元素類型所占字節數,sizeof(type),兩者中取較小的一個,元素內存地址到結構體或類的起始地址的偏移量為較小數的整數倍。

比如#pragma pack(n)默認為4,有以下結構體

struct A{  int a;  char b;  short c;};

a的起始地址距離結構體起始地址的偏移量為0,是sizeof(int)的整數倍。

b的起始地址距離結構體起始地址的偏移量為4,是sizeof(char)的整數倍。

c的起始地址距離結構體起始地址的偏移量為5,不是sizeof(short)的整數倍,所以它的起始地址偏移量將會是6,而不是5。

輸出a, b, c 的地址為

0043FD68

0043FD6C

0043FD6E

可以看到c的起始地址比b的起始地址大了2個字節,b占了2個字節的大小,這是因為c的類型是short型,大小為2,而n默認是4,sizeof(short) < n,所以偏移量應該是2的整數倍,這里是6.

希望本文所述對大家的VC++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲欧美日韩2019| 在线观看成人黄色| 欧美激情在线有限公司| 精品久久久一区二区| 亚洲人成在线观看网站高清| 欧美第一页在线| 亚洲欧美日韩一区二区在线| 久青草国产97香蕉在线视频| 91在线观看免费网站| 国产精品久久久久久亚洲影视| 色偷偷av亚洲男人的天堂| 亚洲tv在线观看| 91精品视频在线看| 亚洲福利在线播放| 浅井舞香一区二区| 亚洲偷熟乱区亚洲香蕉av| 亚洲精品欧美一区二区三区| 成人h片在线播放免费网站| 久久久爽爽爽美女图片| 久久精品电影网| 精品国产一区二区三区久久久狼| 美乳少妇欧美精品| 国产精品扒开腿做爽爽爽的视频| 亚洲成人免费网站| 亚洲国产成人爱av在线播放| 乱亲女秽乱长久久久| 日本一本a高清免费不卡| 国产日韩精品视频| 欧美孕妇毛茸茸xxxx| 亚洲欧洲成视频免费观看| 欧美日韩999| 日韩三级成人av网| 日韩国产欧美精品一区二区三区| 国产视频久久网| 日韩精品黄色网| 日韩av在线网页| 日韩在线免费观看视频| 亚洲色图25p| 亚洲一级一级97网| 亚洲欧美国产精品久久久久久久| 亚洲理论在线a中文字幕| 亚洲精品一区中文| 欧美激情xxxxx| 欧美精品在线第一页| 中文字幕欧美日韩在线| 清纯唯美日韩制服另类| 国产成人精品一区二区| 亚洲人成网站在线播| 国产一区二区三区三区在线观看| 久久久久久久久久国产| 久久婷婷国产麻豆91天堂| 永久555www成人免费| 欧美精品aaa| 亚洲一区美女视频在线观看免费| 久久69精品久久久久久国产越南| 国产精品视频99| 国产精品com| 色中色综合影院手机版在线观看| y97精品国产97久久久久久| 国产精品视频播放| 久久久久国产一区二区三区| 亚洲天堂网站在线观看视频| 久久国产精品电影| 国产精品亚洲欧美导航| 国产成人+综合亚洲+天堂| 精品久久久久久电影| 国产欧美久久一区二区| 4p变态网欧美系列| 日本在线精品视频| 欧美精品在线免费播放| 日韩一区在线视频| 亚洲伊人成综合成人网| 国产精品久久久久高潮| 成人性生交大片免费看视频直播| 欧美日韩国产在线播放| 亚洲国产日韩欧美综合久久| 欧美精品国产精品日韩精品| 亚洲成av人片在线观看香蕉| 亚洲视频自拍偷拍| 精品视频在线观看日韩| 欧美在线一级视频| 成人欧美一区二区三区在线湿哒哒| 国产精品成人播放| 国产精品丝袜久久久久久高清| 欧美色videos| 亚洲人线精品午夜| 久久亚洲私人国产精品va| 亚洲激情在线视频| 国产一区二区三区在线| 精品视频一区在线视频| 日韩av一区在线观看| 亚洲香蕉成人av网站在线观看| 欧美精品激情视频| 亚洲电影免费观看高清| 国产精品自在线| 日韩美女免费观看| 日韩在线视频国产| 日韩av网站在线| 中文字幕日韩高清| 欧美一区二粉嫩精品国产一线天| 欧美激情xxxxx| 亚洲影视九九影院在线观看| 久久青草精品视频免费观看| 精品欧美激情精品一区| 亚洲国产成人av在线| 久久久精品中文字幕| 乱亲女秽乱长久久久| 欧美在线性视频| 欧美精品电影在线| 国产精品久久久久久超碰| 一区二区三区 在线观看视| 日韩一区二区久久久| 伊人av综合网| 日韩av在线一区二区| 亚洲精品一区中文字幕乱码| 国产成人亚洲综合91精品| 久久国产精品电影| 黑人狂躁日本妞一区二区三区| 97视频在线免费观看| 日本高清不卡在线| 国产精品99久久久久久www| 亚洲综合中文字幕在线| 欧美超级免费视 在线| 国产精品一香蕉国产线看观看| 深夜福利日韩在线看| 国产成人精品日本亚洲| 国产亚洲精品久久久久久777| 中文字幕精品在线视频| 色噜噜亚洲精品中文字幕| 欧美高跟鞋交xxxxhd| 日本国产精品视频| 欧美国产日韩一区二区在线观看| 久久久久免费精品国产| 日韩精品丝袜在线| 国产精品精品视频一区二区三区| 久久99久久99精品中文字幕| 亚洲乱码一区二区| 欧美电影免费观看电视剧大全| 1769国内精品视频在线播放| 国产精品国模在线| 亚洲国产精品va在线观看黑人| 色99之美女主播在线视频| 日本午夜在线亚洲.国产| 97在线看免费观看视频在线观看| 亚洲美女自拍视频| 久久久久久久久久久av| 日韩高清av在线| 国产91精品高潮白浆喷水| 亚洲天堂久久av| 自拍视频国产精品| 欧美性猛交xxxx免费看漫画| 欧美体内谢she精2性欧美| 96pao国产成视频永久免费| 亚洲国产成人精品电影| 国产日韩亚洲欧美| 亚洲va欧美va在线观看| 久久久久久久久久国产精品| 孩xxxx性bbbb欧美| 国产一区红桃视频| 国产va免费精品高清在线观看| 亚洲精品v天堂中文字幕| 欧美一级免费视频| 欧美日韩国产一区二区三区| 亚洲激情中文字幕|