日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

自对齐(self-aligned)

發(fā)布時間:2025/5/22 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自对齐(self-aligned) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C語言是自對齊的,32位以4字節(jié)對齊,64位以8字節(jié)對齊(1字節(jié)=8 bits)

自對齊的好處:在一條指令內(nèi)完成數(shù)據(jù)的取或者存的操作,使得內(nèi)存訪問更快;否則,如果一個變量跨機(jī)器字存儲,那么要做兩次或更多次的訪問(先取存在前一個機(jī)器字的內(nèi)容,再取存在后一個機(jī)器字的內(nèi)容)。

對齊要求

  • 字符可以起始于任何字節(jié)地址
  • 2字節(jié)的short int必須起始于偶數(shù)地址
  • 4字節(jié)的int或者float必須起始于被4整除的地址
  • 8字節(jié)的long int或者double必須起始于被8整除的地址
  • struct按照最寬成員進(jìn)行指針對齊。如果struct中嵌套struct,外部struct要按照自己與內(nèi)部struct中最寬的成員進(jìn)行對齊。

內(nèi)存中的實(shí)際存儲情況

例1:代碼

char *p; char c; int x;

內(nèi)存中的存儲

char *p; //4 bytes(32位)或8 bytes(64位) char c; //1 byte char pad[3]; //3 bytes,無用空間,老派術(shù)語稱之為slop(水坑) int x; // 4 bytes

?

消除水坑

可以通過改變變量聲明的位置擠掉水坑。

水坑發(fā)生于大數(shù)據(jù)類型的存儲區(qū)域緊跟在一個較小的數(shù)據(jù)類型的存儲區(qū)域之后。

消除水坑的方法是按對齊的降序來對變量進(jìn)行聲明。

?

轉(zhuǎn)載于:https://www.cnblogs.com/qionglouyuyu/p/4969260.html

總結(jié)

以上是生活随笔為你收集整理的自对齐(self-aligned)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。