64位與32位linux c開發時預設位元組對齊值

2021-08-18 02:55:19 字數 365 閱讀 2884

1、64位機器sizeof的值為16

struct a

2、32位機器sizeof的值為12

3、空間換時間

如果在程式設計的時候要考慮節約空間的話,那麼我們只需要假定結構的首位址是0,然後各個變數按照上面的原則進行排列即可,基本的原則就是把結構中的變數按照型別大小從小到大宣告,儘量減少中間的填補空間.還有一種就是為了以空間換取時間的效率,我們顯示的進行填補空間進行對齊,比如:有一種使用空間換時間做法是顯式的插入reserved成員:

struct a

reserved成員對我們的程式沒有什麼意義,它只是起到填補空間以達到位元組對齊的目的,當然即使不加這個成員通常編譯器也會給我們自動填補對齊,我們自己加上它只是起到顯式的提醒作用.

Linux平台開發 64位與32位問題

長度 單位bit c type 32位64位 char88 short 1616 int32 32long 3264 long long 6464 float 3232 double 6464 指標 3264 主要的不同點在於long和指標,這兩種型別都由32bit變為64bit。同樣需要注意的有 ...

32位與64位區別

機器為什麼要分為32位和64位?作業系統為什麼分為32位和64位?程式設計上32位和64位有什麼差異?一 機器與作業系統32位,64位。32位和64位指的是機器字長 cpu同時處理的資料的最大長度。一台電腦機器是由cpu,記憶體,io裝置,匯流排組成,電腦機器是64位指各部件都支援64位。實際當中c...

64位ubuntu 相容32位

首先要開啟64位系統對32位的支援 第一步 確認64為架構的核心 dpkg print architecture 輸出 adm64 說明已擁有64位架構核心。第二步 確認開啟了多架構支援功能 dpkg print foreign architectures 輸出 i386 說明已開啟,如果沒有需要手...