1

double や int 以外の数値を使用するのは初めてです。int または double を値で渡す必要があることは知っていますが (メモリ/速度を考慮して)、long long データ型を関数に渡す方法がわかりません。

基本的に、長い長い数値は、値よりも const 参照で渡す方が速くなるのに十分な大きさですか?

4

2 に答える 2

1

long long の数値は 64 ビットであり、その差が小さいことを考えると、値渡しは問題ないはずです。

一般に、クラスまたは構造体の場合、const 参照による受け渡しが効率的または優れた方法ですが、クラスまたは構造体のサイズが小さい場合、参照によってメモリのアドレス指定とアクセスに余分なコストがかかる可能性があるため、注意が必要です。

于 2013-04-03T20:07:50.427 に答える
-1

高速かどうかは、コンパイラとコンピューターのアーキテクチャによって異なります。long longコンパイラ (特に 32 ビット コンパイラ) で常に使用できるとは限りません。一般的に、関数を頻繁呼び出さない限り、おそらく速度の違いに気付かないでしょう。

サイズが double または float に近い場合は、コンパイラにも依存します。しかし、計算エラーの可能性は、 と の両方で同じように大きくlong longなりdoubleます - エラーのサイズだけが異なります (もしあったとしても)。

ただし、あなたが説明していることについては、値渡しと言えます。基本的に、値を変更する必要があり、その変更を呼び出し元の関数に反映する必要がある場合にのみ、参照渡しをお勧めします-戻り値は必要ありません。

于 2013-04-03T20:10:10.687 に答える