При разработки Пользовательских блоков с кодом Си встречал несколько проблем:
Первый случай:
Пользовательский параметр timesend (равен 300)
В вставлял код:
if ((millis() - time1) >= timesend || errorstate !=0)
При компиляции получалось:
if ((millis() - time1) >=_168551789_1 300 || errorstate !=0)
И так во многих местах после знака "= "
Решил проблему убрав пробелы после "="
В вставлял код:
if ((millis() - time1) >=timesend || errorstate !=0)
При компиляции получалось:
if ((millis() - time1) >= 300 || errorstate !=0)
Еще нельзя использовать в названии входов и выходов блоков пользователя названия отличающиеся на дополнение с "_"
Например
text и En_text
При компиляции получится
En_text_124678817_1_124678817_1
Для обхода Достаточно использовать хотя бы так
text_1 и En_text
или надёжнее так
text и EnText
Нельзя использовать объявление структуры кодом
typedef struct{
...
...}
test;
Пришлось заменить на такой кодом
struct test{
...
...
};
Возможно не все из перечисленного баг, может так и задумывалось.
Ошибки в генерации кода Блок Си
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Ошибки в генерации кода Блок Си
Ошибки исправил кроме процитированной. С таким объявлением я пока не справлюсь, но Ваша замена абсолютно корректна. Проконсультировался со специалистами по ССлимпер писал(а):Нельзя использовать объявление структуры кодомtypedef struct{
...
...}
test;
Пришлось заменить на такой кодом
struct test{
...
...
};
Автор программы FLProg.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость