Вынужден согласиться с оратором со странным Ф.И.О.
(«Телесистемы»: Конференция 'Микроконтроллеры и их применение')

миниатюрный аудио-видеорекордер mAVR

Отправлено Mik 01 апреля 2004 г. 20:55
В ответ на: Извините но вы ошибаетес. В данном случае как раз все ОПРЕДЕЛЕННО. Конструкции конечно бессмысленые, но важно понимать как работает язык. отправлено приоритета выполнения операций 01 апреля 2004 г. 19:47

Я перепутал эту ситуацию с вызовом функции. При вызове функции порядок вычисления аргументов не определён. В нашем же случае порядок вычисления всех подвыражений определён.
Проблема возникает только тогда, когда в выражении есть два приращения одной переменной. Цитата из стандарта ISO C 1999:

Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression. Furthermore, the prior value shall be read only to determine the value to be stored.
...
This paragraph renders undefined statement expressions such as
i = ++i + 1;
a[i++] = i;
while allowing
i = i + 1;
a[i] = i;

Что именно это значит применительно к варажениям типа (++a==++a), надо бы подумать. Что-то голова под вечер не варит...

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru