Conversión de char* y unsigned

La conversión entre char* y unsigned no se ha realizado correctamente durante mucho tiempo y la última conversión de tipo obligatoria se ha realizado correctamente.

char *elemento = new char[4];

unsigned* ret =(unsigned*)tem;//Necesita ser convertido de esta manera, unsigned ret = unsigned(*tem) en realidad está mal, no sé quién me puede dar una respuesta

Además, en c, hay una diferencia entre cadenas y matrices de caracteres, consulte http://c.biancheng.net/view/337.html

Adjunta un poco de experiencia:

template<clase T>
void put_val(std::string& buf, T val) {     buf.append((caracter sin firmar*)&val, (caracter sin firmar*)&val + sizeof(T)); }

   estándar::cadena b3dm_buf;
    b3dm_buf += "b3dm";
    cout << "b3dm_buf longitud:"<<b3dm_buf.longitud() << endl;
    versión int = 1;
    put_val(b3dm_buf, versión);

Los dos parámetros de la función append() anterior son la primera y la última dirección de char* sin firmar, put_val primero convierte el tipo T en char* sin firmar y luego agrega los caracteres a buf.
--------------------- 
Autor: Ignorante juvenil 123 
Fuente: CSDN  Original
: https://blog.csdn.net/sinat_34816302/article/details/84544345Descargo 

Supongo que te gusta

Origin blog.csdn.net/sinat_34816302/article/details/84553436
Recomendado
Clasificación