_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.
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應