_swab
Intercambia los bytes.
Sintaxis
void _swab(
char *src,
char *dest,
int n
);
Parámetros
src
Datos que se van a copiar e intercambiar.
dest
Ubicación de almacenamiento de los datos intercambiados.
n
Número de bytes que se van a copiar e intercambiar.
Valor devuelto
La swab
función no devuelve un valor. La función establece errno
en EINVAL
si el src
puntero o dest
es null o n
es menor que cero y se invoca al controlador de parámetros no válidos, como se describe en Validación de parámetros.
Para obtener más información sobre los códigos de retorno, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Comentarios
Si n
es par, la función _swab
copia n
bytes de src
, intercambia cada par de bytes contiguos y almacena el resultado en dest
. Si n
es impar, _swab
copia e intercambia los primeros n
-1 bytes de src
y el byte final no se copia. La función _swab
se suele usar para preparar los datos binarios para transferirlos a un equipo que usa un orden de bytes diferente.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
_swab |
C: <stdlib.h> C++: <cstdlib> o <stdlib.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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);
}
Before: BADCFEHGJILKNMPORQTSVUXWZY 27 bytes
...........................
After: BADCFEHGJILKNMPORQTSVUXWZY
ABCDEFGHIJKLMNOPQRSTUVWXYZ.