Нужна помощь!
- Войдите на сайт для отправки комментариев
Пт, 24/07/2015 - 10:10
Добрый день товарищи !! Не могу понять в чем причина ошибки.... Короче пишу сейчас меню для жкрана с кнопками. Пока состряпал структуру. Конечный элемент структыры имеет адрес указателя функции.Так вот когда писал его в КОдБлоксе, все работает и шикарно. Как залил код в Arduino IDE , так начал ругатся на преобразование типов. Ардуино держу в руках первый раз, пожтому подскажите что не так делаю. Спасибо!Ниже код полный
#include <stdio.h> #include <stdlib.h> #include <string.h> void menu_new(char *,char *,char *,char *,int *,int *,void *); int summ3(int,int); int summ4(int,int); int summ5(int,int); void Arduino(void); int hj=8; typedef struct M { struct M *down; struct M *up; struct M *child_head; struct M *child_end; char name[20]; } menu; static menu *pos1;//указатель на структуры основного меню static menu *pos2;//указатель на структуру подменю static int *funcia1; static int *funcia2; static int *funcia3; static menu *current;//указатель на конец и начало дерева static menu *current2;//Указатель для передвижения по меню static menu base; int main(){ current=&base; base.down=base.up=base.child_end=base.child_head=&base; menu_new("Maxim","Ves","Rost","IQ",summ3(67,6),summ4(167,5),Arduino); while(1){ } } void menu_new(char *name_menu,char *name_podmenu1,char *name_podmenu2,char *name_podmenu3,int *summ3,int *summ4,void *Arduino){ pos1=(menu*)malloc((sizeof(menu))); pos1->down=current->down; pos1->up=current; current->down->up=pos1; current->down=pos1; strcpy(pos1->name,name_menu); pos1->child_head=pos1->child_end=pos1; pos2=(menu*)malloc(sizeof(menu)); pos2->up=pos1; pos2->down=pos1; pos1->child_head=pos2; pos1->child_end=pos2; pos2->child_end=(menu*)&summ; pos2->child_head=(menu*)&summ; strcpy(pos2->name,name_podmenu1); pos2=(menu*)malloc(sizeof(menu)); pos2->up=pos1->child_end; pos2->down=pos1; pos1->child_end->down=pos2; pos1->child_end=pos2; pos2->child_end=(menu*)&summ2; pos2->child_head=(menu*)&summ2; strcpy(pos2->name,name_podmenu2); pos2=(menu*)malloc(sizeof(menu)); pos2->up=pos1->child_end; pos2->down=pos1; pos1->child_end->down=pos2; pos1->child_end=pos2; pos2->child_end=(menu*)&Arduino; pos2->child_head=(menu*)&Arduino; strcpy(pos2->name,name_podmenu3); } int summ3(int a,int b){ int c; c=a+b; return c; } int summ4(int a,int b){ int c; c=a+b; return c; } int summ5(int a,int b){ int c; c=a+b; return c; } void Arduino(){ hj=hj+1; }
все функции тут не имеют смысловой нагрузки , просто сделаны чтобы проверить работоспособность .
странная запись
ты вначале фукнции объявляешь? это не надо
41 строка и далее непонятна. что за запись такая
да void setup и loop не увидел
странная запись
ты вначале фукнции объявляешь? это не надо
41 строка и далее непонятна. что за запись такая
да void setup и loop не увидел
писал его в КОдБлоксе, все работает и шикарно.
пойду на туалетной бумаге напишу что нибуть.. а если не заработает то приду за помощью
setup -main, loop- while(1);
После 41 строчки , динамичесеки ыделю паямять под указатель Pos1 , потом присваеваю его элементам структур значения и по такому же принципи создаю pos2. Получается динамическое дерево.
короче хочешь чтобы было как ты хочешь и игнорируешь структуру скетча в ардуино
От этого ничего не изменится. Короче понятно. Мне тут ни кто не поможет
ну и вали раз ничего не изменится)
Отвечу на свой вопрос Сам. Я не правильно работал с указателями на функцию, вот статья на эту тему http://www.amse.ru/courses/cpp2/2011_04_11.html
Вот код. Там все понятно.
И дело не в setup и loop.
ну вот разобрался. ты почаще читай новые темы на форуме. сам поймешь почему тебе так ответили
Ответить нечего, вот и ответили.