我开始使用"空"程序并检查生成的.exe文件的大小
int main()
{
system("pause");
}
Run Code Online (Sandbox Code Playgroud)
exe大小:58.5 KB(59,904字节)
然后我添加了一大堆静态变量
int main()
{
const int BIG_NUMBER = 40000000;
static int x[40000000];
system("pause");
}
Run Code Online (Sandbox Code Playgroud)
exe大小:58.5 KB(59,904字节)
使数组非静态也没有影响.我添加了一些代码(a)100%确定变量没有被优化掉(b)看看额外的指令是否会增加.exe的字节数
int main()
{
const int BIG_NUMBER = 40000000;
static int x[40000000];
for (int i = 0; i < BIG_NUMBER; ++i)
{
std::cout << x[i] << std::endl;
}
system("pause");
}
Run Code Online (Sandbox Code Playgroud)
exe大小:58.5 KB(59,904字节)
字面上不是单个字节.在这一点上,我(在黑暗中刺)的猜测是.exe请求操作系统在程序启动时分配静态变量所需的正确内存量,但这似乎不对.什么决定了.exe文件的大小?