Дан код: int main() { int a = 8 int b = 100 float d int c = ++a * a++ d = b / (--a) return 0 } но почему-то в g++ переменная с равна 90, а в msvc она равна 81.
Ответ Неопределенное поведение классическое: int c = ++a * a++ Для C++98: Двухкратная запись в переменную a в пределах одной точки следования. Для C++11: Нарушение правил порядка вычисления. Программа ошибочна. Компилятор может реагировать случайным образом.