作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 C 语言创建了一个简单的 hello world 程序,如下所示:
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}
之后,我在 Mac 上使用 gcc 编译它并使用 xxd 转储它。每行 16 个字节(8 个字),编译后的程序总共有 3073 行或 49424 个字节。在所有这些字节中,只有 1 904 个字节组成了程序,而其余的 47 520 个字节都是零。
-Os
编译器选项,但没有得到任何结果。)
Hello World!
的空终止符)我只计算完整的零块。
最佳答案
生成的文件不仅仅包含您的程序所需的代码和数据。它还包含正确加载和执行程序所需的元数据。一般来说,这个元数据可能会被拆分成多个section,每个section需要在一定的边界对齐。为此,可能会添加一些零以进行填充。对较大的程序进行相同的检查将减少元数据和填充占用的空间。
关于c - 为什么简单的程序会占用这么多的存储空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66260709/
我是一名优秀的程序员,十分优秀!