[prg] Re[7]: Префиксы и постфиксы was: программа на си, печатающая массив из 9 э
Приветствую всех.
> То есть, иными словами генерализируем: при использовании цикла for в си-подобных
> языках с точки зрения семантики и быстродействия корректнее применять префиксную
> форму инкремента или декремента. Я прав или всё же есть нюансы?
Да, правы. Нюансы тоже есть, но обычно они указываются в документации к реализации
языка или в его стандарте.
Конкретно для языка C, поскольку постфиксная форма в цикле for весьма распространена,
то компиляторы, как правило, оптимизируют ее по умолчанию.
Для других языков, где нет реальных простых типов (например, скриптовые языки)
или где в качестве итератора может выступать более сложный объект (в C++), очевидность
такой оптимизации сомнительна (по крайней мере, на нее не стоит уповать).
В общем случае, семантика языковой конструкции должна соответствовать или быть
близкой к тому, что этой конструкцией пытался выразить программист.
Это в естественных языках мы можем каламбурить и получать от этого удовольствие,
а в программировании код, изобилующий программистскими каламбурами, очень проблематично
сопровождать и развивать даже самому автору этого кода.
Если креативная энергия бьёт через край, то для всяческих tricks есть соответствующие
конкурсы среди программистов. Там ограничений нет.
Успехов. Анатолий.