Re: Когда происходит post increment?
От: Андрей Тарасевич Беларусь  
Дата: 29.04.02 15:50
Оценка: 8 (2)
Здравствуйте Silver_s, Вы писали:

SS>post decrement/increment должен выполняться после вычисления значения выражения, но что нужно понимать под выражением?


SS>Или стандартом не оговорено когда надо делать пост операции?


Не оговорено. Все побочные эффекты должны возыметь место до следуюшей точки следования. Точнее сказать нельзя.

Постинкремент означает, что в выражении будет использовано значение переменной до инкремента. А когда кокретно поизойдет сам инкремент — никто не знает. Инкремент, если так захочет компилятор, может произойти даже до использования значения переменной в выражении.

Например, вот такой С++ код

int a, b;
...
a = b++ + 5;


компилятор, если захочет, может странслировать вот в такой результирующий код

mov     eax, b
inc     b
add     eax, 5
mov     a, eax


т.е. собственно инкремент переменной 'b' делается еще до того, как будет выполнено сложение с 5 и переменная 'a' получит новое значение. Тем не менее код ведет себя так, как должен вести себя именно постинкремент.
Best regards,
Андрей Тарасевич
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.