-
- Спасибо ответившим. После того, как переспал с мыслью, понял что без LOG не обойтись. Проблема в следующем: необходимо защититься от использования принтф. То есть всегда использовать LOG. Кроме батника с проверкой пока на ум ничего не пришло. - Constantin24_(10.12.2019 07:12)
- Добавить в командную строку "-Dprintf=printf_is_disabled" ? - fk0(10.12.2019 11:20)
- со 2го раза дошло ))). В таком случае в релизе не должно быть printf совсем, а хотелось бы чтобы он был разрешен в одном файле. Кстати поделиться кто реализацией Loggerа? Интересует небольшой объем данных, хранение последних сообщений в озу в Constantin24_(16 знак., 11.12.2019 07:36)
- Нормальный логгер, к сожалению, делается только на C++... На C сам язык начинает сильно мешать. Что потенциально можно было бы сделать, и какие есть сложности: fk0(8363 знак., 11.12.2019 12:39)
- Большинство вещей, о которых ты мечтаешь (например enum'ы) в реальных практических LOG-системах не требуются. Потому что в лог сохраняется имя файла + номер строки, по которым из лога всегда переходят к source code. - RxTx(14.12.2019 20:37)
- Понимаю, что ничего не знаю по плюсам. Благодарю вас, поставлю еще пункт в изучении. Constantin24_(251 знак., 13.12.2019 07:42)
- Я-б поделился, но у меня просто текст пишется в колцевой буфер. Дата-время и чего огранитить. Скрипач(24 знак., 13.12.2019 09:58)
- по пункту 5 про енумы. енумы создавать через Х-macro Это свяжет число со строкой. Но обратная сторона медали это отсутсвие навигации и превью в редакторе по этим енумам - abivan(11.12.2019 13:14)
- Можно просто енумы генерировать через макрос, который сгенерирует и энум, и inline-функцию принимающую данный enum и возвращающую строку. Проблема потом, как эту функцию вызвать. Например ENUMNAME_tostring(value). Ведь вместо ENUMNAME можно fk0(2872 знак., 11.12.2019 14:04, ссылка)
- что то "этот" вариант неработает в Си... Zoro(102 знак., 29.07.2022 16:55)
- Нахуа это всё. Нахуа вам енумы писать в лог? Коту делать нечего? - RxTx(14.12.2019 22:22)
- Спасибо. Сложно очень, без поллитры не разобрать. Я делаю проще, не так изящно. Но кой чего почерпнул для себя, спасибо. Вот как компилит 2-й вариант XC32 от майкрочипа. abivan(566 знак., 11.12.2019 15:07)
- Во-первых ты компилируешь C-файл в режиме C++ -- об этом говорит ошибка "no operator++..." Для C++ нужно заменить строчку на "for (i = zero; i<= tenth; (Numbers)(i+1))". Во-вторых ошибка в 60 строке только в C является варнингом, а в C++ будет fk0(289 знак., 11.12.2019 21:52)
- в каком режиме компилит XC32 это он сам решил(видимо из за строчной буквы расширения .С На плюсах я не пишу. Не то чтоб не хотелось, на данном этапе в ембедед нет такой возможности. для pic18/24 нет плюсов а код должен работать и на них и на abivan(1283 знак., 12.12.2019 11:10)
- Вопрос: для пиков можно писать на плюсах? Или нет компиляторов? - Constantin24_(13.12.2019 07:22)
- XC32 для PIC32 только - abivan(13.12.2019 11:08)
- Ну, всегда есть преобразование C++ --> C. Но с отладкой на уровне исходника будет #опа. - SciFi(13.12.2019 08:30)
- Где это оно есть? В CFront? Там C++ образца 90-х годов. Comeau C++? Аналогично. Clang? Они там что-то сломали 10 версий назад и чинить не планируют. fk0(164 знак., 13.12.2019 11:38 - 11:53)
- Варнинг в этом месте и должен быть. 60-я строка специально с ошибкой, чтоб показать, что варнинг, если типы перепутаешь, есть. fk0(420 знак., 12.12.2019 11:59)
- Вопрос: для пиков можно писать на плюсах? Или нет компиляторов? - Constantin24_(13.12.2019 07:22)
- в каком режиме компилит XC32 это он сам решил(видимо из за строчной буквы расширения .С На плюсах я не пишу. Не то чтоб не хотелось, на данном этапе в ембедед нет такой возможности. для pic18/24 нет плюсов а код должен работать и на них и на abivan(1283 знак., 12.12.2019 11:10)
- Во-первых ты компилируешь C-файл в режиме C++ -- об этом говорит ошибка "no operator++..." Для C++ нужно заменить строчку на "for (i = zero; i<= tenth; (Numbers)(i+1))". Во-вторых ошибка в 60 строке только в C является варнингом, а в C++ будет fk0(289 знак., 11.12.2019 21:52)
- Я попробовал скомпилировать в опенваткоме - не получилось Zoro(1559 знак., 11.12.2019 14:45)
- Можно просто енумы генерировать через макрос, который сгенерирует и энум, и inline-функцию принимающую данный enum и возвращающую строку. Проблема потом, как эту функцию вызвать. Например ENUMNAME_tostring(value). Ведь вместо ENUMNAME можно fk0(2872 знак., 11.12.2019 14:04, ссылка)
- Ну так кто мешает? Оставь printf где тебе надо, а где не надо сделай как соетует fk0 - il-2(11.12.2019 08:38)
- Нормальный логгер, к сожалению, делается только на C++... На C сам язык начинает сильно мешать. Что потенциально можно было бы сделать, и какие есть сложности: fk0(8363 знак., 11.12.2019 12:39)
- со 2го раза дошло ))). В таком случае в релизе не должно быть printf совсем, а хотелось бы чтобы он был разрешен в одном файле. Кстати поделиться кто реализацией Loggerа? Интересует небольшой объем данных, хранение последних сообщений в озу в Constantin24_(16 знак., 11.12.2019 07:36)
- Добавить в командную строку "-Dprintf=printf_is_disabled" ? - fk0(10.12.2019 11:20)
- Спасибо ответившим. После того, как переспал с мыслью, понял что без LOG не обойтись. Проблема в следующем: необходимо защититься от использования принтф. То есть всегда использовать LOG. Кроме батника с проверкой пока на ум ничего не пришло. - Constantin24_(10.12.2019 07:12)