strcmp が返されることは知っています...
ゼロより大きい値は、一致しない最初の文字の値が str2 よりも str1 の方が大きいことを示します。ゼロ未満の値はその反対を示します。
しかし、これらの正または負の数値は何を意味するのでしょうか? たとえば、2 とはどういう意味ですか?
strcmp が返されることは知っています...
ゼロより大きい値は、一致しない最初の文字の値が str2 よりも str1 の方が大きいことを示します。ゼロ未満の値はその反対を示します。
しかし、これらの正または負の数値は何を意味するのでしょうか? たとえば、2 とはどういう意味ですか?
標準では、特定の数値が何を意味するかはわかりません。各実装は、必要に応じてゼロより大きい、等しい、またはゼロ未満を返す限り、好きなものを返すことができます。
要するに、何もありません。通常、関数の実装方法に依存しますが、それに依存することはできません。
たとえば、彼らがここで話している実装では (3 番目の投稿): http://compsci.ca/v3/viewtopic.php?t=24383最初の異なる文字 (の数値表現) の違いを返しますstrcmp("ab","ad")
。戻り-2
ます。
または、この実装では、http://en.wikibooks.org/wiki/C_Programming/Strings#The_strcmp_function同じ呼び出しで が返され-1
ます。
0 より大きい値は、一致しない最初の文字が str2 よりも str1 の方が大きいことを示します。
と
2 > 0
それで
2 は、一致しない最初の文字の値が str2 よりも str1 に大きいことを示します。
返された整数の符号のみが意味を持ちます。通常、ほとんどの実装では (それぞれ) -1、0、+1 ですが、正確な値に依存することはありません。