HOGE が定義されていない場合に関数 foo() を無効にする場合は

#ifndef HOGE
#define foo(x)
#endif

でいいのでしょうか?
一応動作しているようなのですが、どうするのが一般的ですか?
C、C++(共にVC++)での使用を考えています。