gpt4 book ai didi

c - 全局常量变量将存储在哪个段中以及为什么

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:28 25 4
gpt4 key购买 nike

在将 const 限定符应用于任何全局变量后,会增加文本段的大小。那么,为什么全局常量变量会存储在文本段中。

我试过这些代码

const int i = 5;
int main()
{
return 0;
}

命令输出:size a.out

text data bss dec hex filename
1080 496 16 1592 638 a.out

int i = 5;
int main()
{
return 0;
}

命令输出:size a.out

text data bss dec hex filename
1076 500 16 1592 638 a.out


最佳答案

由于文本段是只读的,它可以在运行程序的所有进程之间共享,从而可能减少内存消耗。这对于可能被许多程序使用的共享库来说更为重要。这是否是实际发生的情况取决于您的操作系统的行为。

将具有静态存储的 const 变量放在文本段中可确保尽可能多地利用此机制。

关于c - 全局常量变量将存储在哪个段中以及为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23948881/

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