_swab

交换字节。

语法

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

参数

src
要复制和交换的数据。

dest
已交换数据的存储位置。

n
要复制和交换的字节数。

返回值

swab 函数不返回值。 如果 srcdest 指针为空指针或 n 小于零,则函数将 errno 设置为 EINVAL,并调用无效的参数处理程序,如参数验证中所述。

有关返回代码的详细信息,请参阅 errno_doserrno_sys_errlist_sys_nerr

备注

如果 n 值为偶数,_swab 函数将从 n 复制 src 个字节,交换每对相邻的字节,并将结果存储在 dest 上。 如果 n 为奇数,则 _swab 复制并交换 src 的前 n-1 字节,而不复制最后一个字节。 _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.

另请参阅

缓冲区操作