C での 32 ビットと 64 ビットの決定 : 包括的なアプローチ
C プログラミングでは、多くの場合、32 ビットと 64 ビットを区別する必要があります。 64ビット環境。 ULONG_MAX と UINT_MAX の比較を使用して提供されたマクロベースの方法は適切であるように見えますが、考慮すべき点がいくつかあります。
提案された方法の潜在的な警告:
クロスプラットフォーム、マルチコンパイラの代替案:
これらの警告に対処するには、より包括的なアプローチをお勧めします。これには、コンパイル プロセスのビット数を明示的に定義する特定のコンパイラ フラグまたはプリプロセッサ マクロに基づいて環境を決定することが含まれます。
// Check operating system #if _WIN32 || _WIN64 #if _WIN64 #define ENVIRONMENT64 #else #define ENVIRONMENT32 #endif #endif // Check GCC #if __GNUC__ #if __x86_64__ || __ppc64__ #define ENVIRONMENT64 #else #define ENVIRONMENT32 #endif #endif
このアプローチは、コンパイルのビット数を正確に決定するためにコンパイラ固有のフラグとマクロに依存します。環境。
コンパイラ コマンド ライン変数:
または、コンパイラ コマンド ラインから環境変数を設定してビット数を明示的に定義することもできます。
# Compile for 32-bit $ g++ -m32 ... # Compile for 64-bit $ g++ -m64 ...
これらのより包括的なアプローチを利用することで、ビット数を確実に決定できます。さまざまなコンパイラやプラットフォームにわたる C コードのビット数を調整し、プログラムが 32 ビットと 64 ビットの両方で意図したとおりに動作することを保証します。環境
以上がC コードが 32 ビット環境で実行されているか 64 ビット環境で実行されているかを確実に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。