Это практика кодирования, чтобы ловить опечатки, например, '! =', Напечатанные как '='.
Если у вас слева есть CONSTANT, все операторы присваивания будут перехвачены компилятором, поскольку вы не можете присвоить константу.
Многие языки (особенно C
) допускают большую гибкость при написании кода. В то время как константа слева кажется вам необычной, вы также можете запрограммировать назначения и условия вместе как
if (var1 = (var2 & var3)) { /* do something */ }
Этот код получит логический результат в var1
, а также / * сделает что-то * /, если результат равен true.
Связанная практика кодирования заключается в том, чтобы избегать написания кода, в котором условные выражения имеют присваивания внутри них; хотя язык программирования допускает такие вещи. Вы не часто сталкиваетесь с таким кодом, поскольку присваивания в условных выражениях необычны, поэтому в типичном коде таких вещей нет.
На сайте IBM DeveloperWorks есть хорошая статья C
о практике кодирования языка, которая, вероятно, все еще актуальна для людей, пишущих на этом языке.