1. ホーム
  2. c++

[解決済み] ifdefのブーリアン: "#ifdef A && B" は "#if defined(A) && defined(B)" と同じか?

2023-04-04 08:16:53

質問

C++で、これは。

#ifdef A && B

と同じです。

#if defined(A) && defined(B)

?

違うと思っていたのですが、私のコンパイラ(VS2005)では違いが分かりませんでした。

どのように解決するのですか?

これらは同じではありません。最初のものは動作しません (私は gcc 4.4.1 でテストしました)。エラーメッセージは次のとおりです。

test.cc:1:15: warning: extra tokens at the end of #ifdef directive の末尾にある

複数のものが定義されているかどうかを確認したい場合は、2番目のものを使用します。