Поделиться через


_swab

Меняет местами байты.

Синтаксис

void _swab(
   char *src,
   char *dest,
   int n
);

Параметры

src
Данные, которые следует скопировать и поменять местами.

dest
Место хранения для переставленных местами данных.

n
Число байтов, которые следует скопировать и поменять местами.

Возвращаемое значение

Функция swab не возвращает значение. Функция задает errno EINVAL значение, если dest src указатель имеет значение NULL или n меньше нуля, и вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров.

Дополнительные сведения о кодах возврата см. в разделе errno, _doserrno_sys_errlistи _sys_nerr.

Замечания

Если n является четным числом, функция _swab копирует n байт из src, меняет местами все соседние пары байтов и сохраняет результат в dest. Если n это нечетно, _swab копирует и переключает первые n-1 байта src, а окончательный байт не копируется. Функция _swab обычно используется для подготовки двоичных данных для передачи на компьютер, который использует другой порядок байтов.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Требования

Маршрут Обязательный заголовок
_swab C: stdlib.h> C++: <<cstdlib> или <stdlib.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// 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.

См. также

Манипуляция буфером