Я занимаюсь программированием на шахматы в C++, в результате есть множество поразрядных операций, которые я должен делать с некоторыми большими числами. Мне было интересно, ради успеха, если во время выполнения выполняются постоянные операции? Или, если они оцениваются во время компиляции. например Предположим, что я должен и следующие 2 константы:Выполняются постоянные операции константы во время выполнения?
const unsigned long long FILE_A = ~0x8080808080808080;
const unsigned long long FILE_B = ~0x4040404040404040;
В функции как этот
unsigned long long join(){
return (FILE_A & FILE_B);
}
ли операция И на FILE_A и FILE_B сделано во время выполнения? Или компилятор делает это?
Попробуйте и проверьте сборку сгенерированный компилятором –