__ptr32、__ptr64
Microsoft 固有の仕様
__ptr32
は 32 ビット システムのネイティブ ポインターを表し、__ptr64
は、64 ビット システムのネイティブ ポインターを表します。
次の例は、これらのポインター型のそれぞれを宣言する方法を示します。
int * __ptr32 p32;
int * __ptr64 p64;
32 ビット システムでは、__ptr64
で宣言されたポインターは 32 ビット ポインターに切り詰められます。 64 ビット システムでは、__ptr32
で宣言されたポインターは 64 ビットのポインター型に変換されます。
Note
/clr:pure によるコンパイル中は、__ptr32
も __ptr64
も使用できません。 それ以外の場合は、コンパイラ エラー C2472 が生成されます。 /clr:pure および /clr:safe コンパイラ オプションは Visual Studio 2015 では非推奨とされており、Visual Studio 2017 ではサポートされていません。
以前のバージョンとの互換性を確保するために、コンパイラ オプション /Za (言語拡張機能の無効化) が指定されていない限り、_ptr32 および_ptr64 は __ptr32
および __ptr64
と同意語です。
例
次の例は、__ptr32
キーワードと __ptr64
キーワードを持つポインターを宣言して割り当てる方法を示します。
#include <cstdlib>
#include <iostream>
int main()
{
using namespace std;
int * __ptr32 p32;
int * __ptr64 p64;
p32 = (int * __ptr32)malloc(4);
*p32 = 32;
cout << *p32 << endl;
p64 = (int * __ptr64)malloc(4);
*p64 = 64;
cout << *p64 << endl;
}
32
64
Microsoft 固有の仕様はここまで
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示