作者gn00618777 (非常念旧)
看板C_and_CPP
标题[问题] C在记忆体的分布
时间Tue Jul 31 14:32:13 2018
我参考网路上的资讯
A:
int main() {
const static int x = 1; //放於.data段唯读区
return 0;
}
B:
int main() {
return 0;
}
A的结果
text data bss dec hex filename
1103 544 8 1655 677 a.out
B的结果
text data bss dec hex filename
1099 544 8 1651 673 a.out
我在linux上 size a.out A和B的差异,照理说只有.data会有差异,为何影响到 text
而且data完全没变动? 我甚至宣告一个
int a[] = {1,2,3}; 一样会影响到 text, 这个区域变数应该算是在 stack 中吧!?
为什麽呢? 谢谢指教。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.220.69.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1533018738.A.298.html
※ 编辑: gn00618777 (61.220.69.181), 07/31/2018 15:07:59
※ 编辑: gn00618777 (61.220.69.181), 07/31/2018 15:51:43
1F:→ sarafciel: size --format=SysV [objfile] 07/31 16:26
2F:→ gn00618777: 谢谢你 07/31 18:25