1 2 3 4 5 6 7 8 9 10 11 12 13
#include <unistd.h> void swab(const void *restrict _src, void *restrict _dest, ssize_t n) { const char *src = _src; char *dest = _dest; for (; n>1; n-=2) { dest[0] = src[1]; dest[1] = src[0]; dest += 2; src += 2; } }