なぜ彼らはこれをしたのですか:
Sys_SetPhysicalWorkMemory( 192 << 20, 1024 << 20 ); //Min = 201,326,592 Max = 1,073,741,824
これの代わりに:
Sys_SetPhysicalWorkMemory( 201326592, 1073741824 );
なぜ彼らはこれをしたのですか:
Sys_SetPhysicalWorkMemory( 192 << 20, 1024 << 20 ); //Min = 201,326,592 Max = 1,073,741,824
これの代わりに:
Sys_SetPhysicalWorkMemory( 201326592, 1073741824 );
優れた特性は、値をシフトすること<< 10
は、1024 (1 KiB) を掛けることと同じであり、<< 20
1024*1024 (1 MiB) であるということです。
連続する 10 のべき乗でシフトすると、コンピューター ストレージの標準単位がすべて得られます。
したがって、その関数はその引数を192 MB (最小) および 1024 MB (最大) として表現しています。Sys_SetPhysicalWorkMemory
(int minBytes, int maxBytes)
Self commenting code:
192 << 20 means 192 * 2^20 = 192 * 2^10 * 2^10 = 192 * 1024 * 1024 = 192 MByte
1024 << 20 means 1024 * 2^20 = 1 GByte
Computations on constants are optimized away so nothing is lost.
私は間違っているかもしれません (ソースを調べていませんでした) が、読みやすさの理由だけだと思います。
ポイントは(まだ言及されていない)ということだと思います
最も基本的なコンパイラを除くすべてのコンパイラは、コンパイル時にシフトを行います。定数式で演算子を使用するときはいつでも、コンパイラはコードが生成される前にこれを行うことができます。constexpr および C++11 より前では、これは関数に拡張されていないことに注意してください。