ホームページ > バックエンド開発 > C++ > C プリプロセッサのコンパイル中にオペレーティング システムを確実に検出するにはどうすればよいですか?

C プリプロセッサのコンパイル中にオペレーティング システムを確実に検出するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-15 07:10:14
オリジナル
261 人が閲覧しました

How Can I Reliably Detect the Operating System During C Preprocessor Compilation?

C でのオペレーティング システムのプリプロセッサ検出

プリプロセッサ処理中のオペレーティング システムの検出は、クロスプラットフォーム C/C コードを作成するために不可欠です。 Mac OS X、iOS、Linux、および Windows でこれを確実に実現する方法は次のとおりです。


ほとんどのコンパイラは、オペレーティング システムを識別するマクロを定義しています。プリプロセッサの検出には、これらの事前定義マクロが重要です。たとえば、GCC には次のような包括的なリストがあります。

<h1>if Definition(WIN32) ||定義済み(_WIN32) ||定義済み(__WIN32__) ||定義済み(__NT__)</h1><pre class="brush:php;toolbar:false">// Define something for Windows (32-bit and 64-bit)
#ifdef _WIN64
    // Define something unique for Windows (64-bit only)
#else
    // Define something specific for Windows (32-bit only)
#endif
ログイン後にコピー

elif APPLE

#include <TargetConditionals.h>
#if TARGET_IPHONE_SIMULATOR
    // iOS, tvOS, or watchOS Simulator
#elif TARGET_OS_MACCATALYST
    // Mac's Catalyst (bridging iOS API into Mac)
#elif TARGET_OS_IPHONE
    // iOS, tvOS, or watchOS device
#elif TARGET_OS_MAC
    // Other Apple platforms
#else
    // Error: Unknown Apple platform
#endif
ログイン後にコピー

elif ANDROID

// Handled elsewhere (Android typically conforms to __linux__)
ログイン後にコピー

elif linux

// Linux
ログイン後にコピー

elif unix

// Unix
ログイン後にコピー

elif定義(_POSIX_VERSION)

// POSIX
ログイン後にコピー

else

// Error: Unknown compiler
ログイン後にコピー

endif

これらのマクロを使用すると、確実に検出できますプリプロセッサ処理中にオペレーティング システムを変更し、それに応じてコードを調整して、さまざまな間での互換性を確保します。プラットフォーム。

以上がC プリプロセッサのコンパイル中にオペレーティング システムを確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート