クロスプラットフォームの C アプリケーションを開発する場合、多くの場合、ターゲット環境のビット数を決定することが必要になります。 。この情報は、メモリ割り当て戦略や関数の最適化など、さまざまなコードの決定に影響を与える可能性があります。 32 ビット環境と 64 ビット環境を判断するために提供されているマクロベースのアプローチは論理的であるように見えますが、制限がある可能性があります。
残念ながら、さまざまなコンパイラやプラットフォームでこの目的を確実に実行できる汎用マクロはありません。したがって、より包括的で堅牢なソリューションが推奨されます。
推奨されるアプローチには、環境ビット数を決定するための特定のコンパイラのメカニズムを特定し、それらを利用してカスタム変数を設定することが含まれます。たとえば、Windows プラットフォームでは、_WIN64 または _WIN32 の存在を利用できます。同様に、GCC コンパイラーは、64 ビット環境用の __x86_64__ および __ppc64__ マクロを提供します。
#if _WIN32 || _WIN64 #if _WIN64 #define ENVIRONMENT64 #else #define ENVIRONMENT32 #endif #endif #if __GNUC__ #if __x86_64__ || __ppc64__ #define ENVIRONMENT64 #else #define ENVIRONMENT32 #endif #endif
また、これらの変数をコンパイラーのコマンド ラインから直接設定することもでき、柔軟性が高まります。
以上がC アプリケーションが 32 ビット環境で実行されているか、64 ビット環境で実行されているかを確実に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。