真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

內(nèi)存對齊模式與結(jié)構(gòu)體-創(chuàng)新互聯(lián)

1、結(jié)構(gòu)體是一種新的數(shù)據(jù)類型,對C語言的數(shù)據(jù)類型進行了極大的擴充。

站在用戶的角度思考問題,與客戶深入溝通,找到成華網(wǎng)站設(shè)計與成華網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋成華地區(qū)。

struct STU{

  int age;

  char name[15];

};

struct STU  a;   //結(jié)構(gòu)體實例

struct STU  *b;  //結(jié)構(gòu)體指針

(1).可以通過a.age對其進行取成員的操作,b->age也可以進行結(jié)構(gòu)體的操作。

b->age存在問題,必須有一個結(jié)構(gòu)體空間已經(jīng)讓b指向,b的值為此結(jié)構(gòu)體空間的地址。

(2).a.name = "lilei"; false,因為name是數(shù)組名稱,指針常量不能賦值,解決方案:strcpy()函數(shù);

(3).字符串直接進行比較的話,是其地址的比較,沒有什么意義,用strcmp()函數(shù)進行比較,就是ASCII碼的比較了。

2、內(nèi)存對齊模式:

  操作系統(tǒng)對于內(nèi)存空間的分配,遵循如下原則:總是從2^n倍數(shù)為地址的字節(jié)處開始分配空間。

如:若按4B對其模式的話,則每個變量(結(jié)構(gòu)體成員)的首地址總是從編號為4的整數(shù)倍的字節(jié)處開始分配空間。

可設(shè)幾字節(jié)對齊如下:

#pragma pack(push)    //保持原對齊格式

#pragma pack(1)      //設(shè)定為n字節(jié)格式

.......

#pragma pack(pop)     //恢復(fù)為原對齊格式

3、結(jié)構(gòu)體大小:

  (1).總大小是下一個類型的整數(shù)倍,否則用單字節(jié)補齊(單字節(jié)最多補到4/8,具體看結(jié)構(gòu)體中最寬幾字節(jié))      //總大小指的是前面字節(jié)總數(shù)和當(dāng)前的字節(jié)數(shù)之和。

  (2).結(jié)構(gòu)體大小是最寬字節(jié)的整數(shù)倍(一般情況下為4或8)

  (3).上述兩個條件必須同時成立。若最終結(jié)果不成立的話,則補齊整數(shù)倍即可。

4、下面舉例論證結(jié)構(gòu)體大?。?/p>

(1). struct TEST{

    int a;

    short b;

    char c;

    struct TEST *next;

  };

分析如下:4->2->1 (補1字節(jié))->4   共12字節(jié)。

內(nèi)存對齊模式與結(jié)構(gòu)體

(2).借用一中的結(jié)構(gòu)體

struct TEST1{

  short d;

  int e;

  char f;

  struct TEST g;

  struct TEST1 *next;

  struct TEST h;

  char i;

};

分析如下:2(補2字節(jié))->4->1(補3字節(jié))->12->4(想補也不能補,最多補到最寬單字節(jié),在這最多到4字節(jié),已經(jīng)為4字節(jié)了,所以不能在補了)->12->1

一共為:41字節(jié),但是結(jié)構(gòu)體大小為最寬單字節(jié)的整數(shù)倍,在這應(yīng)為4的整數(shù)倍。

最終,此結(jié)構(gòu)體大小為44字節(jié)。

內(nèi)存對齊模式與結(jié)構(gòu)體   

(3).借用一中的結(jié)構(gòu)體

struct TEST2{

  short d;

  int e;

  double f;

  struct TEST1 *next;

  struct TEST g;

  char i;

};

分析如下:2(補2字節(jié))->4->8->4(補4字節(jié):前面一共16字節(jié),當(dāng)前4字節(jié),所以總共20字節(jié),不是下一個數(shù)據(jù)類型(12)的整數(shù)倍,且最寬為8字節(jié),可補4字節(jié),構(gòu)成整數(shù)倍)->12->1

一共為37字節(jié),但是結(jié)構(gòu)體大小為最寬單字節(jié)的整數(shù)倍,在這應(yīng)為8的整數(shù)倍。

最終此結(jié)構(gòu)體大小為40字節(jié)

內(nèi)存對齊模式與結(jié)構(gòu)體

結(jié)構(gòu)體類型極大的擴充了C語言,是數(shù)據(jù)類型更加豐富多彩!

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。


當(dāng)前標(biāo)題:內(nèi)存對齊模式與結(jié)構(gòu)體-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/dpjsgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部