在下面的代码中,我在另一个函数中定义了一个函数:
void test1(void)
{
void test2(void)
{
printf("test2\n");
}
printf("test1\n");
}
int main(void)
{
test1();
return 0;
}
这个用法很奇怪,它是c89/c99的用法还是gcc的扩展(我在ubuntu 12上使用gcc 4.6.3编译)。我运行了这段代码,它输出了“test2”和“test1”。只能在test1中调用test2。
此外,这个用法通常用于什么场景或者说被用来做什么?
test2()
的作用范围,你无法在test1()
之外调用它。 - bikram990