[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[WitchTech 00650] Re: ご返事ありがとうございました。



うえけんです。

> > 4.ビットフィールドは使わない。unsignedも使わない(多くの
> > 場合unsignedは不要)。2のべき乗の乗除算はシフトにする。
> > 扱う数値にマイナスがありえないからといって、安易にunsigned
> > を使わないこと。
> unsignedを使用した場合の処理速度に於けるデメリットが分かりません。
> x86系特有の話でしょうか?

signed と unsigned の計算や比較がある場合、値の格上げチェック
が入ります。これは、「値の保存」か「符号の保存」のどちらかの
アプローチで、両方を「同じ土俵で比較・計算する」という処理に
なります。この土俵を合わせる処理が入るのでさけるべきです。

また、基本的に unsigned でなければ処理できないような場面はそう
あるものではないので、事実上 unsigned を使用禁止にしても問題は
ほとんどありません。逆に signed と unsigned の混在によるバグの
可能性のほうが怖いです。

詳しくはアスキーから出ている「エキスパートCプログラミング」と
いう本を読んでみてください。

それでは


ML Archives