Вход
Наше всё
Теги
codebook
PARTS
Поиск
Опросы
Закон
Понедельник
18 января
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
ARM
AVR
PIC
PLD, FPGA, DSP
Кибернетика
Технологии
Схемы, платы, компоненты
Средства и методы разработки
/1068685
Топик полностью
Zoro
(12.01.2021 15:39 - 22:26, просмотров: 55)
в ответ на
А причина возникновения варнинга следующая... Анализатор не плодит дополнительных сущностей. Из строки "if(Kolvo>MaxRegTX || Kolvo==0) return;" он выясняет
Kolvo[1,32], а из строки "if((Adres+Kolvo)>MaxReg) return;"
он выясняет
Adres[0,15], принимая
Kolvo наихудшим случаем. Потом когда доходит до цикла, он считает индекс массива 32+15-1=46. И выкидывает варнинг. П
оправьте если не прав.
- автор:
IBAH
собственно вот это я и хотел сказать. (я про 31+15=46), но как то не слишком явно выразился.
Ответить
Ответы
Я в арифметике ошибся, никто не заметил...
-
IBAH
(
12.01.2021 21:35
)
А зачем символ ; в конце строки с for?
-
picarmer
(
13.01.2021 00:54
)
Ещё один довод в пользу анализаторов: приличный бы ругнулся. А у нас никто несколько дней не замечал.
-
fk0
(
13.01.2021 11:56
)
Не пройдёт компиляцию. Там пример кода весь покорёженный. Наверняка это результат редактирования, возможно, в пылу борьбы с сахаровским редактором постов.
-
SciFi
(
13.01.2021 12:10
)
Именно "в пылу борьбы". Кнопка "</>" глючит по взрослому ! Вставить код получается с нескольких попыток. (У меня Хром, Вин7)
-
IBAH
(
13.01.2021 14:57
)
Точка с запятой в конце for/while и оператор или блок кода под таким for -- типовая ошибка. И анализаторы умеют предупреждать, даже по-моему gcc warning даёт. Раньше не давал и я помню тоже с таким багом долго сражался и долго смеялся после. В хорошем анализаторе код не просто проверяется буквально, согласно формальной грамматике, но и проверяются возможные человеческие ошибки такого рода. Например будет ругаться на неправильную "индентацию", т.к. потенциально это значит
fk0
(31 знаков,
13.01.2021 12:16
)
ну да. вот еслиб { стояла в той же строке что и for - одной ошибкой было бы меньше
-
Zoro
(
13.01.2021 23:35
)
Спасибо! Хороший аргумент за компактное форматирование против раздутого.
-
fk0
(
14.01.2021 00:41
)
Вот для таких случаев и нужен статический анализатор.
-
fk0
(
12.01.2021 21:46
)