従来のコードを 64 ビット マシンに適応させる際の一般的な課題は、void* 引数を引数に変換することです。関数内で互換性のある型。これを解決するには、クリーンなソリューションを検討してみましょう。
1 つのアプローチは、最新の C テクニックを活用することです。たとえば、ポインター値を保持できる整数値を表すように設計された uintptr_t 型または intptr_t 型を利用できます。ポインタから uintptr_t に変換するには、reinterpret_cast が適切なメソッドです。
#include <cstdint> void *p; std::uintptr_t i = reinterpret_cast<std::uintptr_t>(p);
このアプローチにより、32 ビット マシンと 64 ビット マシンの両方で互換性が確保され、関数内の整数としてポインタ値に安全にアクセスして操作できるようになります。 .
以上が32/64 ビット互換性のためにポインタを整数に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。