小编Can*_*Yet的帖子

为什么在添加更多变量和/或指令时程序大小保持不变?

我开始使用"空"程序并检查生成的.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文件的大小?

c++ memory static compilation

0
推荐指数
1
解决办法
82
查看次数

标签 统计

c++ ×1

compilation ×1

memory ×1

static ×1