¿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.