LINUX.ORG.RU

История изменений

Исправление liksys, (текущая версия) :

Ну то есть ты считаешь, что код из этого примера плохой. А можешь это обосновать, почему он плохой?

Емнип, там UB, и еще порядок исполнения операций играет роль. Я порядок помню только для самых частоиспользуемых конструкций, остальное следует писать более развернуто и очевидно.

Но можешь ты сказать, когда побочные эффекты в выражении допустимы, а когда нет?

Когда они ожидаются, тогда и допустимы. Плевать на побочные эффекты, на самом деле. Главнее здесь принцип наименьшей неожиданности: функция должна работать так, чтобы вызывать наименьшую неожиданность у читающего код. Это включает минимизацию влияния на входные данные, и минимизацию влияния на глобальный стейт в том числе.

Исходная версия liksys, :

Ну то есть ты считаешь, что код из этого примера плохой. А можешь это обосновать, почему он плохой?

Емнип, там UB, и еще порядок исполнения операций играет роль. Я порядок помню только для самых частоиспользуемых конструкций, остальное следует писать более развернуто и очевидно.

Но можешь ты сказать, когда побочные эффекты в выражении допустимы, а когда нет?

Когда они ожидаются, тогда и допустимы. Плевать на побочные эффекты, на самом деле. Главнее здесь принцип наименьшей неожиданности: функция должна работать так, чтобы вызывать наименьшую неожиданность у читающего код. Это включает минимизацию влияния на входные данные в том числе.