gpt4 book ai didi

c - linux .s 文件的大小大于 .o 文件

转载 作者:行者123 更新时间:2023-11-30 20:52:08 25 4
gpt4 key购买 nike

我正在编译一个程序来查找数组中的最大数字。

已编辑

我编译如下:

gcc --save-temps max.c -o max

然后继续做

ls -l max*

输出是:

-rwxrwxr-x 1 tapan tapan  7296 Aug 16 01:45 max
-rw-rw-r-- 1 tapan tapan 233 Aug 16 01:45 max.c
-rw-rw-r-- 1 tapan tapan 17894 Aug 16 01:45 max.i
-rw-rw-r-- 1 tapan tapan 1308 Aug 16 01:45 max.o
-rw-rw-r-- 1 tapan tapan 1507 Aug 16 01:45 max.s

我的问题是:为什么.s汇编文件的大小比.o二进制文件大?

我认为.o文件有二进制字符串,所以它会更大。

由于链接库的原因,最终文件的最大大小也符合预期。但是 .o 文件的大小让我认为 .o 文件没有二进制字符串,而是有其他东西。如果有错误的地方请指正。

最佳答案

如果“二进制字符串”指的是 ASCII 编码(即每个 0 或 1 都是 ASCII 字符 0x30 和 0x31),那么您可以在文本编辑器中打开该文件并查看 0001011011111101011101100...,那么没有。只需使用 catod (如果您使用的是 unix)或十六进制编辑器查看,它“直接”包含二进制数据。操作码 01001010 在二进制文件中占用一个字节,而不是 8 个 ASCII 字符(每个字符占用 1 个字节)。

关于c - linux .s 文件的大小大于 .o 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18261196/

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