C/C++語言中結(jié)構(gòu)體的內(nèi)存分配小例子
當未用 #pragma 指令指定編譯器的對齊位數(shù)時,結(jié)構(gòu)體按最長寬度的數(shù)據(jù)成員的寬度對齊;當使用了 #pragma 指令指定編譯器的對齊位數(shù)時,結(jié)構(gòu)體按最長寬度的數(shù)據(jù)成員的寬度和 #pragma 指令指定的位數(shù)中的較小值對齊。
#pragma 指令格式如下所示:
#pragma pack(4) // 或者 #pragma pack(push, 4)
舉例如下:(機器字長為 32 位)
struct
{
char a;
}test;
printf("%d/n", sizeof test);
打印出來的結(jié)果為 1;
struct
{
char a;
short b;
char c;
}test;
printf("%d/n", sizeof test);
打印出來的結(jié)果為 6;
struct
{
char a;
int b;
char c;
}test;
printf("%d/n", sizeof test);
打印出來的結(jié)果為 12;
struct
{
char a;
double b;
char c;
}test;
printf("%d/n", sizeof test);
打印出來的結(jié)果為 24;
#pragma pack(4)
struct
{
char a;
double b;
char c;
}test;
printf("%d/n", sizeof test);
打印出來的結(jié)果為 16;
相關(guān)文章
C++面向?qū)ο笾鄳B(tài)的實現(xiàn)和應(yīng)用詳解
相信大家都知道面向?qū)ο蟮娜筇匦允欠庋b,繼承和多態(tài),下面這篇文章主要給大家介紹了關(guān)于C++面向?qū)ο笾鄳B(tài)的實現(xiàn)和應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09
Qt6.0+vs2019環(huán)境配置的實現(xiàn)教程
這篇文章主要介紹了Qt6.0+vs2019環(huán)境配置的實現(xiàn)教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
簡要解讀C++的動態(tài)和靜態(tài)關(guān)聯(lián)以及虛析構(gòu)函數(shù)
這篇文章主要介紹了簡要解讀C++的動態(tài)和靜態(tài)關(guān)聯(lián)以及虛析構(gòu)函數(shù),析構(gòu)函數(shù)在C++編程中平時并不是太常用,需要的朋友可以參考下2015-09-09
基于C語言構(gòu)建一個獨立棧協(xié)程和共享棧協(xié)程的任務(wù)調(diào)度系統(tǒng)
這篇文章主要為大家詳細介紹了如何基于C語言構(gòu)建一個獨立棧協(xié)程和共享棧協(xié)程的任務(wù)調(diào)度系統(tǒng),文中的示例代碼講解詳細,需要的可以參考下2024-02-02

