char* と unsigned の間の変換は長い間成功していませんでしたが、最後の必須の型変換は成功しました
char *tem = 新しい char[4];
unsigned* ret =(unsigned*)tem;//このように変換する必要があります。unsigned ret = unsigned(*tem) は実際には間違っています。誰が答えてくれるのかわかりません。
さらに、c では文字列と文字配列には違いがあります。http://c.biancheng.net/view/337.html を参照してください。
少し経験を追加します。
template<class T>
void put_val(std::string& buf, T val) { buf.append((unsigned char*)&val, (unsigned char*)&val + sizeof(T)); }
std::string b3dm_buf;
b3dm_buf += "b3dm";
cout << "b3dm_buf length:"<<b3dm_buf.length() << endl;
int バージョン = 1;
put_val(b3dm_buf, バージョン);
上記の append() 関数の 2 つのパラメータは unsigned char* の最初と最後のアドレスで、put_val はまず T 型を unsigned char* 型に変換してから buf に文字を追加します。
----------
著者:青少年の無知 123
出典:CSDN 原文
:https://blog.csdn.net/sinat_34816302/article/details/84544345