10

2 つのマクロのいずれかが定義されている場合に含めたいコードがあります。

#ifdef MACRO1 || MACRO2

void foo()
{


}

#endif

Cでこれを達成するにはどうすればよいですか?

4

4 に答える 4

17

に加え#ifdefて、プリプロセッサはより一般的な#if命令をサポートしています。実際、#ifdef MACROは のショートカットです#if defined(MACRO)definedは、マクロが定義されている場合に 1 を返す「プリプロセッサ関数」です。したがって、次のことができます。

#if defined(MACRO1) || defined(MACRO2)

void foo()
{


}

#endif
于 2012-12-04T21:05:49.323 に答える
5
#if defined(MACRO1) || defined(MACRO2)
于 2012-12-04T21:04:24.043 に答える
4

ここでは、必要に応じて NOT バージョン:

#if !defined(MACRO1) && !defined(MACRO2)
...
#endif
于 2014-12-16T12:27:32.193 に答える
0
  #if defined(Macro 1) + defined(Macro 2) == 1
  <Code>
  #endif  
于 2012-12-04T21:07:37.637 に答える