_swab
交換位元組。
語法
void _swab(
char *src,
char *dest,
int n
);
參數
src
要複製並交換的資料。
dest
交換資料的儲存位置。
n
要複製並交換的位元組數目。
傳回值
函 swab
式不會傳回值。 如果 src
或 dest
指標為 null 或 n
小於零,則會叫用無效的參數處理程式,如參數驗證中所述,函式會設定errno
EINVAL
為 。
如需傳回碼的詳細資訊,請參閱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.