MEMSWAP(3) C Programmer's Manual MEMSWAP(3)NAMEmemswap - swap the contents of two memory blocks
SYNOPSIS
#include <publib.h>
void memswap(void *block1, void *block2, size_t n);
DESCRIPTIONmemswap will swap the contents of the two blocks pointed by its first
two arguments. The last argument gives the size of the memory blocks.
EXAMPLE
To swap two structs, one might do the following.
struct tm tm1, tm2;
memswap(&tm1, &tm2, sizeof(struct tm));
BUGS
Using memswap to swap small portions of memory is inefficient. It is
not worth it to use it to swap variables of any of the basic types, for
instance. Use inline code for such cases. However, for large portions
of memory, e.g., arrays, it is convenient.
memswap can't swap variables whose address can't be taken. This
excludes variables with the register specifier and bitfields in
structs. But then, there is no way to write a function (or macro) that
can handle any kind of arguments. Life is hard.
SEE ALSOpublib(3)AUTHOR
Lars Wirzenius (lars.wirzenius@helsinki.fi)
Publib C Programmer's Manual MEMSWAP(3)