今天瞎翻了一下GCC的手册,发现了这两个好玩儿的东西。一个是Nested function,就是gcc允许将一个函数定义在另一个函数的内部:
当然像上面的定义方式,foo的外面是无法使用square的。经试验,发现还可以在square函数里面定义函数,至于最大能到多少层我现在还不大清楚。
另一个有意思的是__func__,说白了就是代表一个字符串,而这个字符串的值正是它所在的函数名。例如下面这个程序会输出“main”。
最后要说的是,__func__是C99标准的一部分,而nested function不属于标准,且不被GNU C++支持(只被GNU C)支持。
发表于 @ 2007年12月13日 14:23:00|评论(loading...)|编辑|收藏