我对{}
中的main
感到困惑。有人可以告诉我他们的目的吗?我确实了解代码,但这是我第一次看到这种格式。
为什么在这部分代码中必须使用{}
,或者在函数内部使用{}
是什么?是不是要声明一个嵌套函数,是吗?
int main()
{
void *p1, *p2, *p3;
arenaCheck();
p1 = malloc(254);
arenaCheck();
p2 = malloc(25400);
arenaCheck();
p3 = malloc(254);
printf("%llx %llx %llx\n", (long long)p1, (long long)p2, (long long)p3);
arenaCheck();
free(p2);
arenaCheck();
free(p3);
arenaCheck();
free(p1);
arenaCheck();
{ /* What is the purpose of these, what is this doing { } */
struct timeval t1, t2;
int i;
getutime(&t1);
for(i = 0; i < 10000; i++)
if (malloc(4) == 0)
break;
getutime(&t2);
printf("%d *** malloc(4) required %f seconds\n", i, diffTimeval(&t2,&t1));
}
return 0;
}
最佳答案
较旧的C版本(C99之前的版本)要求在块的开头声明变量。如果在没有大括号的情况下为那些C版本编译此代码,则t1
和t2
的声明将导致错误。如果您使用的是C99或更高版本,则只需删除花括号-在这种情况下,它们是多余的。