Цитата:
Сообщение от
mazzy
префиксный ++ остался еще с C, где способ записи имел значение. оба способа могут выстрелить в колено. но префиксный был быстрее в общем случае.
Уходя в некоторый офтопик: И на PDP-11 и на VAX, были префиксный автодекрементый и постфиксный автоинкрементный способы операции. То есть - система сначала уменьшала регистр на размер операнда, а потом брала значение операнда по адресу из регистра. Или наоборот - система сначала брала значение операнда по адресу из регистра, и потом регистр увеличивала на размер операнда.
Поэтому конструкция a=*(--ptr) и a=*(ptr++) транслировались в одну машинную команду, а конструкции a=*(ptr--) и a=*(++ptr) - в две.
Аналогично - операции ++ и -- были введены как раз потому что в PDP-11 были специальные машинные команды INC и DEC, которые увеличивали или уменьшали операнд на единицу и работали занимали меньше памяти и работали чуть быстрее чем обычные операции сложения и вычитания.