軽く追記

どうでもいいですが、久々に GCC の拡張文法

http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/gccextend.html

を見ていて、なんとなく

int main() {
    goto f;
    printf("%d\n", ({ int f;  f:; f = 0; }));
}

とか書いてたコードを適当にふくらませて

#include <stdio.h>

void f(int f) { printf("%x\n", f); }

int main() {
    goto *&&f;
    f(({
        int f; f?f<+f+++f++>f:f;f:f,f = ({
            int f() { return f<f-f>f; } f; f();
        }); for (f;f;f);
    }));
}

とかこんな感じで処理の流れわけわからんなーとか思ってるうちに今日のことをやってみたくなったとか。

あ、あと、1.ちゃんとスタック保存する、 2.ifdef を使わないという意味でのポータブルな、ライブラリが書ける気がしてきました (本日3度目の思いつきで2度は失敗) が大変そうなので明日…いずれにせよ制限ありまくりの実用性皆無のネタですが。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h