私はJavaのプログラムをcで変換しようとしています。 私はプログラミングを知らない、私はビットbtwを理解したいと思います。 はJavaの配列のポインタを変換します
はよく私はC言語でこれらの機能を持っている:static int memcmp(Byte *a, Byte *b, int len) {
int i;
for (i = 0; i < len; i++)
if (a[i] != b[i])
return 0;
return 1;
}
static int rfind(Byte *data, int pos, int leng) {
int i;
for (i = pos - leng; i > -1; i--)
if (memcmp(data+i, data+pos, leng))
return i;
return pos;
}
いる私はトレーニングすることはできません。 関数memcmpは2つのメモリブロックを比較しているようです。 私はデータのサイズを取得する場合:
printf("size %d \n", sizeof(data));
をのorignalサイズは(ポインタについて何か良いドキュメントが歓迎されている)、32または40ことができますが、私は結果のために8を得ました。 Javaのこのビットを変換するために私を助けることができる
誰もがすべての私の感謝の気持ちを持っている(とそれ以上)します。文字列とバイト配列のあなたがArrays.equals()
を使用することができますを比較する おかげ
私はmemcmpのほうが1つではなく2つの配列を与える方が便利だと思います。 –
一般的にはもっと便利ですが、rfindでそれを使用するには、2つの新しい配列を作成し、元の配列から新しい配列に必要な範囲をコピーする必要があります。それはうまくいくが、非常に非効率的である。 –