它是C語言,寫成:typedef struct __attribute__((packed, aligned(4))) Ball { float2 delta; float2 position; //float3 color; float size; //int arcID; //float arcStr;} Ball_t;Ball_t *balls;請告訴我它的含義以及如何使用此關(guān)鍵字。
3 回答

三國紛爭
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
packed
意味著它將使用最小的空間struct Ball
-即它將填充字段而不會(huì)填充aligned
表示每個(gè)地址都struct Ball
將以4字節(jié)邊界開始-即對于任何一個(gè)struct Ball
,其地址都可以除以4
這些是GCC擴(kuò)展,不屬于任何C標(biāo)準(zhǔn)。

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
該屬性packed
表示編譯器不會(huì)在的字段之間添加填充struct
。填充通常用于使字段與它們的自然大小對齊,因?yàn)槟承w系結(jié)構(gòu)會(huì)對未對齊的訪問施加懲罰或完全不允許這樣做。
aligned(4)
表示該結(jié)構(gòu)應(yīng)與可被4整除的地址對齊。
- 3 回答
- 0 關(guān)注
- 1338 瀏覽
添加回答
舉報(bào)
0/150
提交
取消