サイトを検索しましたが、探していた答えが見つかりませんでした。ここに簡単な質問があります。
私はそのようなことをしようとしています:
#ifdef _WIN32 || _WIN64
#include <conio.h>
#endif
どうすればそのようなことができますか? _WIN32は32ビットウィンドウと64ビットウィンドウの両方に定義されているので、どちらのウィンドウ検出でも問題ありません。プリプロセッサディレクティブでそのような論理演算子を使用できるかどうか、そして使用できる場合は、上記が機能しないため、どのように使用できるかにもっと興味があります。
Gccでコンパイルすると:
警告:#ifdefディレクティブの最後に余分なトークンがあり、基本的に最初のMACROを取得し、残りを無視します。
試してください:
#if defined(_WIN32) || defined(_WIN64)
// do stuff
#endif
defined マクロは、名前が定義されているかどうかをテストし、結果に論理演算子を適用できるようにします。
#if
と特殊演算子を使用する必要があります defined
私はそれがこのように可能であるはずだと思います:
#if defined block1 || defined block2 /*or any other boolean operator*/
/*Code*/
#endif
詳細情報 ここ
定義された使用:
#if defined(A) || defined(B)
#include <whatever.h>
#endif