アカウント名:
パスワード:
実装なのか想像するスレ
"Because of incorrect casting" と書いてありますね。
memcmp の戻り値を char に変換した上で 0 と比較してるんじゃないでしょうか。memcmp の戻り値は、一致の場合0、違う場合は正または負の整数ですが、0じゃない整数を char に変換すると 1/256 の確率で 0 になって一致したことになると。この場合、戻り値の整数値に 1 または -1 しか使わないような実装の memcmp なら問題は生じないので、実装によっては大丈夫という理由も説明できます。
わざわざ、なんでキャスト?っておもってみたらcharを返す関数でmemcmpの戻り値そのままreturnで返してるんですね。こんなキャストなら俺もミスするかも
それキャストじゃなくて暗黙の型変換じゃん。型変換を何でもかんでもキャストと呼ぶバカは爆発しろ。ってMySQLの開発者が言ってんのか。深刻すぎる
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
身近な人の偉大さは半減する -- あるアレゲ人
どういう (スコア:0)
実装なのか想像するスレ
Re: (スコア:2, 参考になる)
"Because of incorrect casting" と書いてありますね。
memcmp の戻り値を char に変換した上で 0 と比較してるんじゃないでしょうか。memcmp の戻り値は、一致の場合0、違う場合は正または負の整数ですが、0じゃない整数を char に変換すると 1/256 の確率で 0 になって一致したことになると。この場合、戻り値の整数値に 1 または -1 しか使わないような実装の memcmp なら問題は生じないので、実装によっては大丈夫という理由も説明できます。
Re: (スコア:0)
わざわざ、なんでキャスト?っておもってみたら
charを返す関数でmemcmpの戻り値そのままreturnで返してるんですね。
こんなキャストなら俺もミスするかも
Re:どういう (スコア:0)
それキャストじゃなくて暗黙の型変換じゃん。型変換を何でもかんでもキャストと呼ぶバカは爆発しろ。ってMySQLの開発者が言ってんのか。深刻すぎる