問題タブ [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 投票する
1 に答える
5593 参照

c - memcmp(ptr1,ptr2,0)の戻り値?

読書中:カウンターを使用せずに、配列の要素がすべて同じであることを確認するにはどうすればよいですか? 、@Skizz は気の利いたソリューションを使用します。

したがって、N がたまたま 1 の場合、次のようになります。

コンペア長が0のとき戻り値は必ず0ですか?


テスト ケース (Cygwin gcc バージョン 4.8.1 Windows 64 ビット) が返されます0。だから私はこれと他のいくつかのコンパイラ/プラットフォームでそれが0であることを知っています.

C11 ドラフト仕様が続きますが、この問題については静かに見えます。たぶん、仕様の別の部分か何かが何かを言っているのでしょうか?

7.24.4.1 memcmp
関数

説明
memcmp 関数は、s1 が指すオブジェクトの最初の n 文字と、s2 が指すオブジェクトの最初の n 文字を比較します。

戻り値
memcmp 関数は、s1 が指すオブジェクトが s2 が指すオブジェクトより大きい、等しい、または小さいため、ゼロより大きい、等しい、または小さい整数を返します。


(&string [1] が不正なメモリを参照していないと仮定します)

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

c - 最初の 2 バイト (ポインタを指定) を固定値と比較する最もパフォーマンスの高い方法は?

ポインターを指定して、最初の 2 バイトを固定値と比較したいと思います。 data空ポインタです。これよりも「良い」方法はありますか:

たぶん、新しい文字配列を作成する必要がない場所ですか? ありがとう!

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

c++ - memcmp が奇妙に配列を返さない

次のような C++ コードがあります。

1 つ目は「等しい」と答え、2 つ目は「等しくない」と答えます。

どうしてこれなの?

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

c - memcmp が for ループ チェックよりもはるかに高速なのはなぜですか?

memcmp(a, b, size)よりもはるかに高速な理由:

memcmp は CPU 命令か何かですか? memcmpオーバーザループを使用して大幅な高速化を実現したため、かなり深いに違いありません。

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

c - 範囲で memcpy または memcmp を使用する

memcpy または memcmp を使用するときに範囲を使用することは可能ですか?

(20) キー data[50-70] と array[] を比較できるようにしたい