-
- Можно просто енумы генерировать через макрос, который сгенерирует и энум, и 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, ссылка)