Red de conocimiento informático - Conocimiento informático - ¿Especificar el tipo de parámetro de memcpy como int aumentaría su velocidad?

¿Especificar el tipo de parámetro de memcpy como int aumentaría su velocidad?

La función memcpy en la biblioteca estándar no usa la definición de tipo char *, pero usa void * memcpy(void *dest, const void *src, size_t len);

El siguiente es el programa que implementé:

# include

void *

memcpy(void *dest, const void *src, size_t len)

{

int32_t *idest = destino;

const int32_t *isrc = src;

char *cdest;

const char * csrc;

size_tilen = len >> 2;

size_t clen = len & ((1 << 2) - 1);

while( ilen -- >0)

*(idest++) = *(isrc++);

cest = (char *)idest;

csrc = (char * ) isrc;

while( clen-- > 0 )

*(cdest++) = *( csrc++);

return destino;

}

Por supuesto, memcpy en la biblioteca estándar real generalmente se implementa en lenguaje ensamblador, que es más eficiente.