Как, скажем, у вас есть переменная c
, которая, благодаря оптимизации процессора, можно смело предположить, что она хранится в регистре. Что из следующего быстрее?Является ли немедленная адресация быстрее, чем доступ к регистру?
c = getchar();
if(c == 033){
putchar(033);
…
}
или
c = getchar();
if(c == 033){
putchar(c);
…
}
Я предполагаю, что первый из них будет быстрее, так как он использует непосредственный адресации, а не доступа к регистру. Правильно ли мое предположение?
Вы должны предположить, что компилятор будет генерировать один и тот же код для обоих, используя то, что имеет непосредственную или регистрационную адресацию быстрее. Вы не должны беспокоиться об этом. В этом случае я бы написал 'putchar (c)', потому что, по-моему, код более читабельен в целом таким образом, но разумные люди могут не согласиться. Это также было бы более читаемым, если бы вы не использовали восьмеричные и не помещали пробелы внутри своих круглых скобок. – zwol
Посмотрите на разборку. Мне действительно было бы безразлично разницу. –
Я бы запустил точный бенчмаркер и проверил их. – Carcigenicate