_swab

バイトを交換します。

構文

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

パラメーター

src
コピーおよび交換されるデータ。

dest
交換したデータの格納場所。

n
コピーおよび交換対象のバイト数。

戻り値

関数は swab 値を返しません。 関数は、パラメーターの検証src説明されているように、またはdestポインターが null または n 0 未満の場合に設定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>

互換性の詳細については、「 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.

関連項目

バッファー操作