实例1
1
2
3
4
5
6
7
#include <stdio.h>
int
main()
{
    int a[10240]; //~ 栈上数组,编译后大小为9.0K
    return 0;
}
实例2
1
2
3
4
5
6
7
#include <stdio.h>
int a[10240] ; //~ 未显式初始化的全局数组,编译后,可执行文件的大小为9.0K
int
main()
{
    return 0;
}
实例3
1
2
3
4
5
6
7
#include <stdio.h>
int a[10240] = {0}; //~ 显式初始化为0的全局数组,编译后,可执行文件的大小为9.0K
int
main()
{
    return 0;
}
实例4
1
2
3
4
5
6
7
#include <stdio.h>
int a[10240] = {1}; //~ 显式初始化a[0]为1的全局数组,编译后,可执行文件的大小为49.0K
int
main()
{
    return 0;
}

  局部对象是在运行时栈上分配的,编译后不占用磁盘空间。未显式初始化或者初始化为0的全局数组,编译器会做相应的记录,以便在程序装入时分配空间。做显式初始化的全局数组,由于初始化的元素个数及元素值不便记录,编译器便在编译时就分配了空间,因此需要占用磁盘空间。

Tags: .
你好!除了代码,此处没有多少原创之物,皆为本人搜集、整理、总结之记录与心得,欢迎转载分享!转载时请尽量注明出处,将不胜感激。祝你健康、快乐!
Home

RFC: Request For Comments. Orz..

Name(required)
Mail (required),(will not be published)

RFC: Request For Comments. Orz..

Website(recommended)