Sdílet prostřednictvím


_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_errlista _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í nbajty 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.

Viz také

Manipulace s vyrovnávací pamětí