問題タブ [memcmp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
360 参照

c++ - unsigned char を文字列に読み込む

符号なし文字の配列があります:

その配列から最初の N 個の unsigned chars を文字列に読み込みたいのですが、 をstrncpy()参照すると、signed chars へのポインタしか取得できないようです。

私は見ているべきmemcpy()ですか?

0 投票する
2 に答える
3786 参照

c# - Monoでバイト配列を比較するためのmemcmpに相当するものはありますか?

here で説明されているように、memcmpから関数をインポートすることにより、.Net の 2 つのバイト配列を比較する効率がよく知られています。msvcrt.dll

モノに同等のライブラリインポートはありますか? LinuxまたはWindowsでモノを実行する場合、異なる必要がありますか? または、モノでうまく機能する別の高速なバイト配列比較手法はありますか? C# で配列を反復処理するよりも優れたものを探しています。

アップデート

Matt Patenaude のコメントに基づいて、これはうまくいくと思います。

しかし、私はまだ試していません。私は前に mono で p/invoke をしたことがありません。pinvoke.netで推奨されている署名を使用しています。これって両立するの?

モノに焦点を当てた答えを探しています。ありがとう。

0 投票する
3 に答える
3199 参照

c++ - なぜこれがmemcmpより遅いのですか

の2行を比較しようとしていますpixel

Aは、4つの値(RGBA)を含むpixelものとして定義されます。structfloat

私が使用していない理由memcmpは、1番目の異なるピクセルの位置を返す必要があるためmemcmpです。

私の最初の実装はSSE組み込み関数を使用しており、以下よりも約30%遅くなりますmemcmp

次に、値をfloatではなく整数として扱うと、処理速度が少し速くなり、現在は。よりもわずか20%遅くなっていることがわかりましたmemcmp

他の質問で読んだことから、のMS実装memcmpもを使用して実装されてSSEいます。私の質問は、MSの実装には、私が持っていない他のトリックがありますか?バイトごとの比較を行っても、それでもどのように高速ですか?

アラインメントは問題ですか?に4つの浮動小数点数が含まれている場合、pixelピクセルの配列はすでに16バイト境界に割り当てられていませんか?

/o2とすべての最適化フラグをコンパイルしています。

0 投票する
2 に答える
5173 参照

c++ - memcmp に null ポインターを渡すことはできますか?

特に、以下は明確に定義されていますか、それとも未定義の動作を示していますか?

これは C と C++ で異なりますか? 理想的には、標準からの見積もりを提供してください。

0 投票する
1 に答える
937 参照

c - memcmp と要素ごとの配列比較

どちらの実装が優れているか、またその理由は?

for ループまたは memcmp() 実装を使用した要素ごとの比較

また

0 投票する
5 に答える
327 参照

c - C構造の内部一貫性

同一のメンバーを持つように初期化された 2 つの C 構造体がある場合、次のことを保証できますか?

は常にゼロを返しますか?

0 投票する
1 に答える
524 参照

c - 更新前の比較 (memcpy の前の memcmp)、または単に更新する場合、どちらのパフォーマンスが優れていますか?

コンテキスト (重要ではありませんが)、netfilter モジュールでは、次のような構造体を使用します。

MAC アドレスと ipv6 アドレスを追跡します。

IPv6 アドレスの変更を処理する場合:

  1. 新旧の値(memcmp)を比較し、異なる場合は更新(memcpy)する必要があります。
  2. または、更新するだけです。

どちらも有効な動作であるため、ここではパフォーマンスが主な関心事です。

同様の質問が 1 つ見つかりました: https://jira.mongodb.org/browse/SERVER-66

彼らは「ただ更新する」方法を選択しているようです。