_swab
Zamienia bajty.
Składnia
void _swab(
char *src,
char *dest,
int n
);
Parametry
src
Dane do skopiowania i zamiany.
dest
Lokalizacja magazynu dla zamienionych danych.
n
Liczba bajtów do skopiowania i zamiany.
Wartość zwracana
Funkcja swab
nie zwraca wartości. Funkcja ustawia wartość errno
, EINVAL
jeśli src
wskaźnik lub dest
ma wartość null lub n
jest mniejszy niż zero, a wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Walidacja parametru.
Aby uzyskać więcej informacji na temat kodów zwracanych, zobacz errno
, _doserrno
, _sys_errlist
i _sys_nerr
.
Uwagi
Jeśli n
tak, _swab
funkcja kopiuje bajty n
z src
klasy , zamienia każdą parę sąsiednich bajtów i przechowuje wynik na dest
. Jeśli n
parametr jest nieparzysty, _swab
kopiuje i zamienia pierwsze n
-1 bajty src
, a ostateczny bajt nie jest kopiowany. Funkcja _swab
jest zwykle używana do przygotowywania danych binarnych do transferu na maszynę, która używa innej kolejności bajtów.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_swab |
C: <stdlib.h> C++: <cstdlib> lub <stdlib.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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.