다음을 통해 공유


_swab

바이트를 교환합니다.

구문

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

매개 변수

src
복사하고 교환할 데이터입니다.

dest
교환된 데이터에 대한 스토리지 위치입니다.

n
복사되고 교환될 바이트 수입니다.

반환 값

함수는 swab 값을 반환하지 않습니다. 함수는 매개 변수 유효성 검사에 src EINVAL 설명된 대로 포인터가 dest null이거나 n 0보다 작고 잘못된 매개 변수 처리기가 호출되는 경우로 설정합니다errno.

반환 코드에 대한 자세한 내용은 , , 및 를 참조하세요errno._sys_nerr_sys_errlist_doserrno

설명

n이 짝수인 경우 _swab 함수는 n에서 src바이트를 복사하고, 인접한 각 바이트 쌍을 교환하고, 결과를 dest에 저장합니다. 홀수인 경우 n 첫 번째 n-1바이트를 src복사하고 교환하며 최종 바이트는 복사되지 _swab 않습니다. _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.

참고 항목

버퍼 조작