C: Ошибка в использовании: «Назначение соединения» и & quot; Префикс Decrement & quot; все вместе

Может кто-нибудь, пожалуйста, скажите мне, почему C Компилятор выдает ошибку при использовании Compound Assignment и Prefix Dec/Inc все вместе ? [ но C++ не ]

int myVar = 5;
(--myVar) -= 4;
// C  : error C2106: '-=' : left operand must be l-value
// C++: myVar=0;

Я знаю, что говорит ошибка …

Но я не могу понять почему C компилятор не может распознать myVar как значение l но C++ делает ?!

3

Решение

В С префикс -- Оператор возвращает значение. Значение r не может быть левым операндом оператора присваивания. Тем не менее, C и C ++ — это два разных языка.

6

Другие решения