GNU C函数嵌套定义及闭包

最近无意中发现GNU C原来是支持函数嵌套定义的,于是想到函数嵌套定义的用处之一:闭包函数,不多说,代码如下:

#include 

void *outer(int var)
{
	void inner()
	{
		printf("inner  %d\n", var);
	}
	printf("outer\n");
	return &inner;
}

int main()
{
	void (*pInner)() = outer(89);
	(*pInner)();
	return 0;
}
运行环境:gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu9)
运行结果:

你可能感兴趣的:(Linux,C)