ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
450666 Топик полностью
fk0, легенда (04.10.2013 12:32, просмотров: 201) ответил илья на Пример можно?
См. ссылку. Проблема носит массовый характер и не надо притворятся, что её нет. Тем более, проблема не только эта. Конкретно в моём случае такой вариант: https://www.google.com/search?q=can%27t+generate+code+site:microchip.com
/// file.c: #include "header1.h" #include "header2.h" /// header1.h #ifndef MACRO // ошибка т.к. MACRO "забыл" ... declaration; ... #define MACRO #endif /// header2.h #ifndef MACRO2 #include "header1.h" // здесь ошибка duplicate declaration ... #define MACRO2 #endif Тратить час времени на воспроизведение и документирование не буду, потому, что в микрочипе не к кому обратиться, чтоб тебя не послали нахуй. Даже в мире опенсоурс можно было написать в рассылку и получить хоть какой-то ответ. Да, код проверен несколькими компиляторами на других платформах. Так что отсылки к говнокоду не принимаются. ANSI C89 он соответствует. А XC8 -- нет. Версия -- последняя на начало сентября 2013г. Вторая проблема, can't generate code, она вообще не имеет никакого способа её обойти. "перепишите по-проще" -- это не ответ. Я переписал. До уровня x=y. Не работает. Проблема в том, что компилятор сам для себя не может распределить регистры/память в некоторых случаях. Она встречается и в STD версии, кстати, но редко и действително выправляется переписыванием через упрощение с ручным введением временных переменных. Для PRO/XC8 такое не прокатывает (x=y не работает).
[ZX]