>>351
コンパイル時にどっちの関数を使うか決めたいってことなのかな。
もしそうだとしたら、定石は条件コンパイルだな。

#ifdef HOGE
void hoge() {
 /* hoge1なことをする */
}
#else
void hoge() {
 /* hoge2なことをする */
}
#endif

int main() {

てな感じかなgccでいうと、gcc -DHOGE hoge.cってやればhoge1な方が、
gcc hoge.cってやればhoge2な方がコンパイルされる。