История изменений
Исправление liksys, (текущая версия) :
Ну то есть ты считаешь, что код из этого примера плохой. А можешь это обосновать, почему он плохой?
Емнип, там UB, и еще порядок исполнения операций играет роль. Я порядок помню только для самых частоиспользуемых конструкций, остальное следует писать более развернуто и очевидно.
Но можешь ты сказать, когда побочные эффекты в выражении допустимы, а когда нет?
Когда они ожидаются, тогда и допустимы. Плевать на побочные эффекты, на самом деле. Главнее здесь принцип наименьшей неожиданности: функция должна работать так, чтобы вызывать наименьшую неожиданность у читающего код. Это включает минимизацию влияния на входные данные, и минимизацию влияния на глобальный стейт в том числе.
Исходная версия liksys, :
Ну то есть ты считаешь, что код из этого примера плохой. А можешь это обосновать, почему он плохой?
Емнип, там UB, и еще порядок исполнения операций играет роль. Я порядок помню только для самых частоиспользуемых конструкций, остальное следует писать более развернуто и очевидно.
Но можешь ты сказать, когда побочные эффекты в выражении допустимы, а когда нет?
Когда они ожидаются, тогда и допустимы. Плевать на побочные эффекты, на самом деле. Главнее здесь принцип наименьшей неожиданности: функция должна работать так, чтобы вызывать наименьшую неожиданность у читающего код. Это включает минимизацию влияния на входные данные в том числе.