gpt4 book ai didi

c - 如何通过更改其成员的顺序找到所有可以变得更小的结构

转载 作者:IT王子 更新时间:2023-10-28 23:31:36 25 4
gpt4 key购买 nike

背景:编译器可能会在结构中插入填充以使其成员更好地对齐。这将导致结构的大小大于其成员大小的总和。重新排序结构的成员以便更好地打包可以消除编译器以这种方式填充的需要,并使结构更小以节省内存。我需要节省那些内存。

后备选项是手动检查每个结构。我正在寻找一种可以减少工作量的自动化方法。

即使它只是减少了需要手动检查的结构的数量,这也会有所帮助。

因此,例如,列出所有大于其成员大小总和的结构的进程/工具/等,虽然并不完美,但仍然会有所帮助,因为它会限制需要手动检查的结构。

有没有人知道可以做到这一点的任何工具,或者任何人都可以提出任何可能有帮助的方法。

附言我需要在包含超过 100 万行代码的嵌入式 C 代码库上执行此操作。

最佳答案

pahole是为此特定目的编写的实用程序。它会分析你编译的目标文件(编译时启用调试),并显示结构漏洞。

关于c - 如何通过更改其成员的顺序找到所有可以变得更小的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2083738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com