Цитата(Alechin @ Oct 15 2007, 16:55)

Побороть смог только вынеся данный код в процедуру с выключением оптимизации для нее (#pragme optimize=none).
Возник вопрос - ни какими ключевыми словами нельзя изменить уровень оптимизации для фрагмента кода С ВОЗВРАТОМ к текущему уровню оптимизации (через #pragma optimize можно только установить требуемый уровень оптимизации, но не вернуться к установленному в свойствах проекта, по крайней мере я не нашел другого)?
В руководстве сказано:
Цитата
The #pragma optimize directive is used for decreasing the optimization level, or for
turning off some specific optimizations. This pragma directive only affects the function
that follows immediately after the directive.
это означает, что данная директива действует только на одну, непосредственно следующую за ней, функцию.
На все последующие функции распространяется уровень оптимизации по умолчанию (заданный в настройках).
Цитата(scifi @ Oct 15 2007, 20:54)

Мне кажется, тут двух мнений быть не может: если нужно гарантировать не более 4-х тактов между инструкциями, то нужно писать на ассемблере. Иначе при каждом апгрейде версии компилятора и смене его настроек придётся проверять, как изменился этот кусок кода.
Не стОит быть столь категоричным.
Если программа написана грамотно, то апдейт версии компилятора (по крайней мере в данном случае) к ухудшению ситуации не приведёт.