Provided by: publib-dev_0.39-3.1_amd64 bug

NAME

       memswap - swap the contents of two memory blocks

SYNOPSIS

       #include <publib.h>
       void memswap(void *block1, void *block2, size_t n);

DESCRIPTION

       memswap  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 ALSO

       publib(3)

AUTHOR

       Lars Wirzenius (lars.wirzenius@helsinki.fi)