Я вот задумался над очень банальной вещью. Если я пишу for(int i=x; i < x + width; i++) то оптимизатор вычислит x+width до начала цикла, или будет складывать каждую итерацию? Аналогично с i < strlen(s). В последнем случае допускается возможность динамического изменения длины строки (в пределах выделенной заранее памяти). Если он вычислит это заранее, то будут ошибки. Как он может понять, что переменная не изменяется в ходе работы цикла, особенно если изменение идет из совершенно другого места программы, или даже косвенное изменение через указатель? Т.е. я всегда обязан писать end_x = x + width до цикла, т.к. оптимизатор не может гарантировать, что width не изменится и цикл будет его много раз складывать.
Похожие темы
- Новости Lua 5.4 (2020)
- Форум оптимизация (2005)
- Форум Оптимизация (2004)
- Форум оптимизация (2005)
- Форум Оптимизация кода (2012)
- Форум Оптимизация кде4 (2011)
- Форум оптимизация KVM (2011)
- Форум Оптимизация CentOS (2011)
- Форум Haskell оптимизация (2010)
- Форум Оптимизация spamassassin (2010)