2011-01-10 6 views
2

これは奇妙な質問のように聞こえるかもしれませんが、私は不思議です。できるだけ効率的にコードを作成したい場合、これは一般的なことですか?たとえば、intデータ型の代わりに短いデータ型を使用して処理を行うことができます。あるいは、効率が効率的なコーディングに費やされる時間よりもずっと少ない場合が普通ですか?変数がどれだけ大きくなったかを見て、より効率的になるようにデータ型を選択しますか?

おかげで...彼らは、コードのタイムクリティカルな部分である場合を除き

+2

intの代わりにshortを使用すると、ほぼ確実に遅くなります。 – Falmarri

+1

なぜshortをintよりも遅く使用するのですか? 16ビット対32ビット?ありがとう〜 –

+2

一般的に短い計算を行うためにintに昇格する必要があり、短く戻って降格されます。それはより多くの機械命令を必要とします – EvilTeach

答えて

1

ほとんどのマシンでは、intはshort/charよりも速いため、そこにはあまり考慮する必要はありません。 64ビット整数が必要な場合を除き、常にintを使用してください。または、実際にメモリを節約する必要がある場合は、より小さな型が便利かもしれません。

floatとdoubleの間では、浮動小数点数の精度が数値計算のために非常に悪いという理由だけで、doubleにデフォルトする方が良いと思います。余分なパフォーマンスが本当に必要で、精度について気にしない場合にのみ、floatを使用してください。

0

私はちょうど、私はあなたは使用しない

3

を択一で、より慎重午前、デフォルトではint型やdouble型を使用しますタイプshort,char,floatまたは類似のものを除いて、配列を作る。それ以外の場合は、必要に応じてint,size_tdouble以上の型を使用してください。

+1

配列を作成しないときにshort、char、floatを使用しないのはなぜですか?以前はこのことを聞いたことがありません。 –

+3

'int'より小さい型は、デフォルトの宣伝のために意味を混同します。例えば ​​'unsigned short'は* signed *型' int'に昇格し、 'x'が' -intより小さい場合は 'x'型の値の範囲外になります'。特定の世代のx86では遅くなりがちで、16ビットのロード/ストア操作をしていないRISCマシンではさらに遅くなる傾向があります。 –

+1

また、 'x 'が' int'より小さい場合、 'x + 1'と' x + = 1'は異なる値を持つことができます。 :-) –

1

プログラムにインスタンスがたくさんある構造体の場合、メモリを節約するために、適切なサイズの型を選択するのがより慎重です。

intの代わりにcharを関数パラメータとして使用すると、範囲が小さくなると思われるからといって、ちょっと愚かなIMOです。

1

メモリの制限がない限り、あなたのタイプのサイズを早めに減らす理由はありません。

たとえば、長い配列では大きな型を使用したり、頻繁に使用される大きな構造体(つまり:メンバーが多い)を使用していますが、注意が必要な場所。

1

組み込みシステムなどのリソースが制限されたプラットフォームを使用している場合は、メモリを節約するために、ではなく、短くするか、またはcharを選択する必要があります。それ以外の場合は、intdoubleのデータ型を使用してください。

関連する問題