私はC++でいくつかのチェスプログラミングをやっています。その結果、いくつかの大きな数値でビット演算を行う必要があります。実行時に一定の操作が行われた場合は、私は不思議でしたか?コンパイル中に評価された場合例えば私がして、以下の2つの定数があるとします。この定数定数演算は実行時に評価されますか?
unsigned long long join(){
return (FILE_A & FILE_B);
}
のような関数で
const unsigned long long FILE_A = ~0x8080808080808080;
const unsigned long long FILE_B = ~0x4040404040404040;
は、実行時に行わFILE_AとFILE_BとのAND演算ですか?それともコンパイラはそれをしますか?
はそれを試してみて、アセンブリを検査していますコンパイラによって生成された –