バイトを交換します。
構文
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.