Есть такой кусок кода:
Код
chKey = RestoreChar(RxBufU0[iBufIndex++], RxBufU0[iBufIndex++]);
(вернее, много подобных вариантов)
ewavr5 (впрочем и 4 тоже) выдает варнинг:
Warning[Pa079]: undefined behavior: variable "iBufIndex" (or a value reached by some form of indirection through it) is modified more than once without an intervening sequence point in this
Насколько я понимаю, ему не нравится то, что переменная меняется несколько раз. Если сделать так:
Код
chKey = RestoreChar(RxBufU0[iBufIndex], RxBufU0[iBufIndex+1]);
iBufIndex += 2;
ругаться перестает. Второй вариант мне не особо нравится, потому что тут нужно отслеживать величину изменения индекса. Можно ли как-то избавиться от этих варнингов не используя второй вариант кода? или на них просто стоит забить?