当我在dev cpp中运行这个程序时,任务管理器显示它大约为79 MB。Codeforces使用gnu c++ 4.7编译器则显示它是79112千字节。
#include<stdio.h>
const int N=10010,K=1010;
struct TPos
{
int charge;
bool ex;
TPos()
{
charge=1<<30;
ex=false;
}
};
TPos d[N][K];
int main()
{
while(1);
return 0;
}
但是当ex参数被注释时:
#include<stdio.h>
const int N=10010,K=1010;
struct TPos
{
int charge;
//bool ex;
TPos()
{
charge=1<<30;
//ex=false;
}
};
TPos d[N][K];
int main()
{
//while(1);
return 0;
}
这个文件只有39536 KB。我以为布尔类型只需要一个字节,为什么会使文件大小翻倍呢?
sizeof(int)
。请参考下面的答案。(也许在charge中多或少2的幂次方并没有太大的区别。) - Tobias