memcmp
関数が何を返さなければならないか知りたいです。
私はインターネットで検索してきましたが、通常、memcmp
定義には次のようなものが記載されています。
memcmp() 関数は、s1 が指すオブジェクトが s2 が指すオブジェクトより大きい、等しい、または小さいため、ゼロより大きい、等しい、または小さい整数を返します。
正確に何が返されるかは明示的に述べられることはありません。それは2 つのバイト値の差ですか、それとも -1、0、または 1 ですか? 私は混乱しています:
- 小さなプログラムで関数をテストする
memcmp
と、評価された 2 バイトの差が 1 より大きいか -1 より小さい場合でも、-1、0、または 1 が返されます。 - インターネットで名前が付けられた関数を見ると
memcmp
、ほとんどすべての関数が、-1、0、または 1 を返す代わりに、2 バイトの差を int として返します。
関数 の十分に正確な定義を得ることができないので、memcmp
ここでこの質問をします。正確には、関数は何memcmp
を返すことになっていますか? どこかに「公式」ソースコードはありますか? (私は多くのソースコードを見てきましmemcmp
たが、誰も答えをくれませんでした:少なくとも私のコンピュータではライブラリstring.hに書かれている関数ではないと思います...)