#include <sys/types.h> #include <string.h> void * memset(void * dst, int c, size_t length) { size_t x = length >> 2; size_t y = length & 0xf; size_t i; unsigned int newC = (c << 24) | (c << 16) | (c << 8) | (c); for (i = 0; i < x; i++) ((unsigned long *)dst)[i] = newC; for (i = 0; i < y; i++) ((char *) dst)[length-y+i] = c; return dst; }