Я где-то однажды читал, что оператор модуля неэффективен на небольших встроенных устройствах, таких как 8-битные микроконтроллеры, которые не имеют инструкции целочисленного деления. Возможно, кто-то может это подтвердить, но я подумал, что разница в 5-10 раз медленнее, чем с целочисленной операцией деления.
Есть ли другой способ сделать это, кроме хранения переменной счетчика и ручного переполнения до 0 в точке мода?
const int FIZZ = 6;
for(int x = 0; x < MAXCOUNT; x++)
{
if(!(x % FIZZ)) print("Fizz\n"); // slow on some systems
}
против
То, как я сейчас это делаю:
const int FIZZ = 6;
int fizzcount = 1;
for(int x = 1; x < MAXCOUNT; x++)
{
if(fizzcount >= FIZZ)
{
print("Fizz\n");
fizzcount = 0;
}
}