次の方法で共有


_swab

バイトを交換します。

構文

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

パラメーター

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

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

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

戻り値

swab関数は値を返しません。 この関数は、srcまたはdestポインターが null または n が 0 未満の場合にEINVALerrnoを設定し、「パラメーターの検証」で説明されているように無効なパラメーター ハンドラーが呼び出されます

リターン コードの詳細については、「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.

関連項目

バッファー操作