_swab
Prohodí bajty.
Syntaxe
void _swab(
char *src,
char *dest,
int n
);
Parametry
src
Data, která se mají zkopírovat a prohodit
dest
Umístění úložiště pro prohozená data
n
Počet bajtů, které se mají zkopírovat a prohodit
Vrácená hodnota
Funkce swab
nevrací hodnotu. Funkce se nastaví errno
, EINVAL
pokud je hodnota src
null nebo dest
ukazatel je null nebo n
je menší než nula a vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru.
Další informace o návratových kódech naleznete v tématu errno
, _doserrno
, _sys_errlist
a _sys_nerr
.
Poznámky
Pokud n
ano, _swab
funkce kopíruje n
bajty z src
, prohodí jednotlivé dvojice sousedních bajtů a uloží výsledek na dest
. Pokud n
je lichá, _swab
zkopíruje a prohodí první n
bajty src
-1 a konečný bajt se nezkopíruje. Funkce _swab
se obvykle používá k přípravě binárních dat pro přenos do počítače, který používá jiné pořadí bajtů.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_swab |
C: <stdlib.h> C++: <cstdlib> nebo <stdlib.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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.