c 中關於地址的問題

2023-01-02 17:10:38 字數 681 閱讀 9859

1樓:陽光上的橋

這是記憶體對齊,編譯程式為變數分配記憶體空間的時候,為了提高效率,可能把每一個變數都從記憶體的word對齊進行分配,即使前一個變數沒有佔用完word的空間。

一般編譯器裡面有選項控制對齊方式。

2樓:匿名使用者

.編譯器是按照什麼樣的原則進行對齊的?

先讓我們看四個重要的基本概念:

1.資料型別自身的對齊值:

對於char型資料,其自身對齊值為1,對於short型為2,對於int,float,double型別,其自身對齊值為4,單位位元組。

2.結構體或者類的自身對齊值:其成員中自身對齊值最大的那個值。

3.指定對齊值:#pragma pack (value)時的指定對齊值value。

4.資料成員、結構體和類的有效對齊值:自身對齊值和指定對齊值中小的那個值。

3樓:曹糯糯

所有地址都是unsigned long型別的,所以佔用4個位元組

4樓:

不管什麼資料型別的地址,都是4個位元組

5樓:匿名使用者

32位電腦裡最多就是對齊到4位元組, 再多沒意義了

6樓:嘻嘻哈哈一下子

地址是從0000-ffff的.

關於c語言問題關於c語言的問題

void vtaskstartscheduler void privileged function 是函式定義,函式名 vtaskstartscheduler,void 表示該函式是無參函式,前面的 void 表示這個函式無返回值。privileged function 是巨集,預編譯期間,執行文字...

關於c語言的計算問題,關於c語言的計算問題

這涉及c的細節,我建議你記住 程式中的常量其實也存放在記憶體單元中,c規定運算運算子兩旁同類時運算結果與參與運算的數的型別相同,事實上時 加法器直接處理那兩個記憶體單元中的資料,並將結果送到另一記憶體單元,而這裡的 另一記憶體單元也是兩位元組長,因此他只接收到結果的低二位元組部分 及1的補碼 所以,...

關於C中建構函式的繼承的問題,請教c 有參建構函式繼承的問題

1 建構函式不繼承,派生類會自動呼叫基類建構函式。2 若類內沒有定義建構函式,系統會自動隱式生成一個不帶引數的建構函式,比如定義一個類 public class a 可以理解為它已經存在一個如下的建構函式 public class a 3 派生類建構函式自動呼叫基類的不帶引數的建構函式,注意下面的格...