gpt4 book ai didi

c - 当我将指针数组更改为 const 时,为什么可执行文件大小会变小?

转载 作者:行者123 更新时间:2023-11-30 15:17:10 25 4
gpt4 key购买 nike

如果我从此改变

wchar_t *lpString[4] = {
L"One",
L"Two",
L"Three",
L"Four"
};

到此

const wchar_t* const lpString[4] = {
L"One",
L"Two",
L"Three",
L"Four"
};

文件大小减少了 512 字节。这是我所做的唯一改变,没有其他改变。如果我将更改恢复为不带 const,则文件将恢复为 512,大小与以前相同。为什么添加 const 后文件大小会变小?

最佳答案

使用非常量定义,您必须为数组保留空间,并且需要一些代码来使用您给出的值初始化该空间。

通过 const 定义,这些值可以直接嵌入到您的二进制文件中并从它们所在的位置进行访问。

由于这一点被接受,我觉得我应该补充一点,这只是一种假设(对我来说似乎最合乎逻辑的假设),因为这当然是实现定义的。对于可写数据段,实现仍然可以将非常量版本放在那里(也将其直接嵌入到二进制文件中)并从那里使用它。因此,要完全确定发生了什么,您可能必须自己检查二进制文件。

关于c - 当我将指针数组更改为 const 时,为什么可执行文件大小会变小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32641442/

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