同样字段换个顺序,C 结构体从 24 字节缩到 16 字节

cneuralnetwork · x · 2026-10-22

作者在把玩 C 结构体时展示了一个经典但常被忽视的事实:两个含完全相同字段的结构体,仅因声明顺序不同,一个占 24 字节、另一个只占 16 字节。

原因是内存对齐:编译器会在字段之间插入 padding,使特定类型落在对齐的地址上。char→double→char 的顺序会产生 7+7 字节填充,而把两个 char 相邻放置(char→char→double)只需 6 字节尾部填充。作者算了一笔账:若有 100 万个实例,仅调整声明顺序就能省下约 8 MB 内存。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →