char*와 unsigned 간의 변환이 오랫동안 성공하지 못했으며 마지막 필수 유형 변환이 성공했습니다.
char *tem = new 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 길이:"<<b3dm_buf.length() << endl;
정수 버전 = 1;
put_val(b3dm_buf, 버전);
위의 append() 함수의 두 매개변수는 unsigned char*의 처음과 마지막 주소이며, put_val은 먼저 T 유형을 unsigned char* 유형으로 변환한 다음 문자를 buf에 추가합니다.
---------------------
저자: Juvenile Ignorant 123
출처: CSDN 원본
: https://blog.csdn.net/sinat_34816302/article/details/84544345