ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1262625
Adept (26.11.2022 20:21, просмотров: 3227)
древнее зло проснулось :(( воюю с препроцессором 

думал в программировании в ассемблере оно (зло) не пролезет :) сколько раз наблюдал как коллеги аоюют с оптимизатором С-компилятора и прочее, однако ж видно зло живёт в сишном препроцессоре :))

кто мне скажет в чём разница??


с таким определением программа собирается, но не работает, причём виснет на функции не имебщей к переменной ровно никакого отношения.

#define TotalKeysQNTY KeyGroupSize*KeyGroups+1


а вот с таким определением - "всё пучком" :)

#define TotalKeysQNTY 1+KeyGroupSize*KeyGroups

причём и первое и второе, в отладчике дают одинаковое значение константы

и если это число прямо прописывать в константу TotalKeysQNTY, - тоже всё работает....


проверил несколько раз (сейчас попробую ради интереса HEX-дампы побайтово сравнить)


как догадался просто переставить единичку? - не пойму (до этого ж в отладчике всё проверял и даже значение константы в лог сборки вывел) Наверное опыт :))


чудеса, да и только ...

(однако не до смеху :(( как верить в надёжность кода при таком раскладе :((


P.S. студия7, если чо AVR assembler v.2 (камень, - мега16)

...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)