_swab
バイトを交換します。
構文
void _swab(
char *src,
char *dest,
int n
);
パラメーター
src
コピーおよび交換されるデータ。
dest
交換したデータの格納場所。
n
コピーおよび交換対象のバイト数。
戻り値
swab
関数は値を返しません。 この関数は、src
またはdest
ポインターが null または n
が 0 未満の場合にEINVAL
にerrno
を設定し、「パラメーターの検証」で説明されているように無効なパラメーター ハンドラーが呼び出されます。
リターン コードの詳細については、「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> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// 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.