Share via


_swab

交換位元組。

語法

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

參數

src
要複製並交換的資料。

dest
交換資料的儲存位置。

n
要複製並交換的位元組數目。

傳回值

swab 式不會傳回值。 如果 srcdest 指標為 null 或 n 小於零,則會叫用不正確參數處理常式,如參數驗證 中所述 ,函式會設定 errnoEINVAL 為 。

如需傳回碼的詳細資訊,請參閱 errno_doserrno_sys_errlist_sys_nerr

備註

如果 n 為偶數,_swab 函式會從 src 複製 n 個位元組、交換每一對相鄰的位元組,然後將結果儲存在 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.

另請參閱

緩衝區操作