そのオブジェクトを指すをにT変換することにより、タイプのオブジェクトの表現を見ることができます。少なくとも実際には:T*char*
int x = 511;
unsigned char* cp = (unsigned char*)&x;
std::cout << std::hex << std::setfill('0');
for (int i = 0; i < sizeof(int); i++) {
std::cout << std::setw(2) << (int)cp[i] << ' ';
}
511これにより、私のシステムでの表現が出力されますff 01 00 00。
ここでは(確かに)いくつかの実装定義の動作が発生しています。どのキャストでをに変換できint*ますunsigned char*か?また、そのキャストにはどの変換が必要ですか?キャストするとすぐに未定義動作を呼び出しますか?T*このようなタイプをキャストできますか?これを行うときに何を信頼できますか?