看下面的代码,我在另一个函数中定义了一个函数,
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”。test2 只能在 test1 中调用。
还有,这个用法的常见场景是什么,或者这个用法是做什么用的?