コンパイルされるオペレーティング システムに応じて、コードが異なる動作をするようにする必要があります。次のようなものを探しています。
#ifdef OSisWindows
// do Windows-specific stuff
#else
// do Unix-specific stuff
#endif
これを実行する方法はありますか? 同じことを実行するより良い方法はありますか?
ベストアンサー1
のOS の定義済みマクロこのサイトには、非常に包括的なチェックリストがあります。以下に、チェックリストのいくつかと、その場所へのリンクを示します。
ウィンドウズ
_WIN32
32ビットと64ビットの両方
_WIN64
64ビットのみ
__CYGWIN__
Unix (Linux、*BSD、ただし Mac OS X は除く)
これを見て関連する質問このチェックを使用する際の落とし穴について説明します。
unix
__unix
__unix__
Mac OS X
__APPLE__
クラシックにも使用される
__MACH__
両方とも定義されているので、どちらかをチェックすれば機能するはずです。
リナックス
__linux__
linux
廃止(POSIX 準拠ではない)
__linux
廃止(POSIX 準拠ではない)
フリーBSD
__FreeBSD__
アンドロイド
__ANDROID__