- 论坛徽章:
- 0
|
#include <stdio.h>
int a[1000] = {1};
int
main(void)
{
printf("hello, world\n");
return (1);
}
如果把a[1000]={0},会发现结果不一样。。。
[root@localhost ~]# ls -l a.out
-rwxr-xr-x 1 root root 8757 11-14 22:33 a.out
[root@localhost ~]# size a.out
text data bss dec hex filename
849 4280 4 5133 140d a.out
[root@localhost ~]# size a.out
text data bss dec hex filename
849 260 4032 5141 1415 a.out
[root@localhost ~]# ls -l a.out
-rwxr-xr-x 1 root root 4717 11-14 22:33 a.out
所以说初始化的全局数组放在data段,未初始化放在.bss段是不准确的。
至少 gcc已经优化了初始化成零的人仍放在.bss段。。。 |
|