_swab
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at _swab.
Swaps bytes.
void _swab( char *src, char *dest, int n );
src
Data to be copied and swapped.
dest
Storage location for swapped data.
n
Number of bytes to be copied and swapped.
The swab function does not return a value. The function sets errno to EINVAL if either the src or dest pointer is null or n is less than zero, and the invalid parameter handler is invoked, as described in Parameter Validation.
See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on this and other return codes.
If n is even, the _swab function copies n bytes from src, swaps each pair of adjacent bytes, and stores the result at dest. If n is odd, _swab copies and swaps the first n-1 bytes of src, and the final byte is not copied. The _swab function is typically used to prepare binary data for transfer to a machine that uses a different byte order.
| Routine | Required header |
|---|---|
_swab | C: <stdlib.h> C++: <cstdlib> or <stdlib.h> |
For additional compatibility information, see Compatibility in the Introduction.
// crt_swab.c
#include <stdlib.h>
#include <stdio.h>
char from[] = "BADCFEHGJILKNMPORQTSVUXWZY";
char to[] = "...........................";
int main()
{
printf("Before: %s %d bytes\n %s\n\n", from, sizeof(from), to);
_swab(from, to, sizeof(from));
printf("After: %s\n %s\n\n", from, to);
}```
```Output
Before: BADCFEHGJILKNMPORQTSVUXWZY 27 bytes
...........................
After: BADCFEHGJILKNMPORQTSVUXWZY
ABCDEFGHIJKLMNOPQRSTUVWXYZ.