gcc 拡張 id:namasute0 氏に gcc 拡張といえば? と聞いたところ、({}) と nested functions だったので、それをちょっといじった。 #include int (*k(int x)) (int) { return ({int f(int y){return x;}f;}); } int main() { int (*f)(int) = k(5); int (*g)(int) = k(7); printf("%x,%x,%d\n",f,g,f(3)); return 0; } $ gcc -Wall gccext.c $ ./a.out bfedf620,bfedf620,3 なんで 3? O をつけてコンパイルすると segmentation fault。 $ gcc -s gccext.c で確認 .type f.0, @function f.0: