int foo(int flag, void *p) { if (flag & is64bit) { _foo_i64((int64_t *)p); } else { _foo_i32((int32_t *)p); } }もちろん処理が短めなら、以下のように書いている。
int foo(int flag, void *p) { if (flag & is64bit) { int64_t *p64 = p; /* */ } else { int32_t *p32 = p; /* */ } }としているが、どうにかこれをきれいにしたい。
うんうん唸ってもなかなか良い解決作が出てこない。