_swab
Troca bytes.
Sintaxe
void _swab(
char *src,
char *dest,
int n
);
Parâmetros
src
Dados a serem copiados e trocados.
dest
Local de armazenamento para os dados trocados.
n
Número de bytes a serem copiados e trocados.
Valor retornado
A swab
função não retorna um valor. A função será definida errno
como se o src
ponteiro or dest
for nulo ou n
menor que zero e o manipulador de parâmetro inválido for invocado, conforme descrito em Validação deEINVAL
parâmetro.
Para obter mais informações sobre códigos de retorno, confira errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Comentários
Se n
for par, a função _swab
copiará n
bytes de src
, trocará cada par de bytes adjacentes e armazenará o resultado em dest
. Se n
for ímpar, _swab
copia e troca os primeiros n
-1 bytes de src
, e o byte final não é copiado. A função _swab
geralmente é usada para preparar dados binários para transferência para um computador que usa uma ordem de byte diferente.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_swab |
C: <stdlib.h> C++: <cstdlib> ou <stdlib.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// 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.