看到下面的代码,我在另一个函数中定义了一个函数,
void test1(void)
{
void test2(void)
{
printf("test2\n");
}
printf("test1\n");
}
int main(void)
{
test1();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这种用法很奇怪,是c89/c99的用法还是gcc的扩展(我在ubuntu 12编译时使用了gcc 4.6.3).我运行此代码并输出"test2"和"test1".test2只能在test1中调用.
更重要的是,这种用法的常见场景是什么,或者这种用法用于什么?