プリプロセッサ処理中のオペレーティング システムの検出は、クロスプラットフォーム 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
#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
// Handled elsewhere (Android typically conforms to __linux__)
// Linux
// Unix
// POSIX
// Error: Unknown compiler
これらのマクロを使用すると、確実に検出できますプリプロセッサ処理中にオペレーティング システムを変更し、それに応じてコードを調整して、さまざまな間での互換性を確保します。プラットフォーム。
以上がC プリプロセッサのコンパイル中にオペレーティング システムを確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。