Мощь и беспомощность автоматической оптимизации

не оптимизированный вариант с инвариантом в теле цикла


Если только компилятор не заинлайнит функцию strlen, она будет вычисляется на каждой итерации цикла, что приведет к значительному снижению производительности. Но если вынести инвариант за пределы цикла, все будет ОК:

t = strlen(s);

for(a=0;a<t;a++) b+=s[a];



Содержание раздела