Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Въпрос относно GCC
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=4731
Страница 1 от 1

Автор:  Реконструктор [ Чет Авг 30, 2007 9:18 pm ]
Заглавие:  Въпрос относно GCC

Как се дефинира тип указател към функция? До сега съм ползвал такова:

typedef void (*funcptr)();

бачка с М$ компилатора, но с GCC не ще. :(

Автор:  miro_atc [ Чет Авг 30, 2007 9:37 pm ]
Заглавие: 

така изглежда по-добре:

typedef void (*funcptr)(void);


По принцип обаче GCC поддържа няколко стандарта (std99 и незнам кво си) и отделно имаш контрол върху какво да ти дава предупреждения/грешки...

И аз си мислех че знам С и не оставям warnings... докато не пуснах GCC и хоп хиляди забележки ;-)

Автор:  шопов [ Чет Авг 30, 2007 9:43 pm ]
Заглавие: 

Хм, при мен работи и по двата начина ( typedef (foo*)(); и typedef (foo*)(void);), разлика всъщност няма. Какъв е проблемът с gcc?

Автор:  Dimitar [ Чет Авг 30, 2007 9:58 pm ]
Заглавие: 

При мен на Code Warrior също работи и по двата начина :) .

Автор:  Реконструктор [ Пет Авг 31, 2007 9:22 am ]
Заглавие: 

Самата конкретна декларация е

Код:
typedef void (*draw_callback_ptr)(void*);


като това което плюе е:

Код:
draw_context.h:9: error: storage class specified for parameter `draw_callback_ptr'
draw_context.h:13: error: parse error before "draw_callback_ptr"
draw_context.h:13: warning: no semicolon at end of struct or union
draw_context.h:13: error: old-style parameter declarations in prototyped function definition


обаче май не е от него, защото сега го сложих в отделен файл, който се компилира без проблем. Ще си загубя днеска 1 ден, то се е видело. :guillotine:

Автор:  ps66 [ Пет Авг 31, 2007 9:48 am ]
Заглавие: 

Реконструктор написа:
...
обаче май не е от него, защото сега го сложих в отделен файл, който се компилира без проблем. Ще си загубя днеска 1 ден, то се е видело. :guillotine:


виж да не си пропуснал ; в някоя декларация на функция в предните h файлове

Автор:  Реконструктор [ Пет Авг 31, 2007 10:28 am ]
Заглавие: 

ps66 написа:
Реконструктор написа:
...
обаче май не е от него, защото сега го сложих в отделен файл, който се компилира без проблем. Ще си загубя днеска 1 ден, то се е видело. :guillotine:


виж да не си пропуснал ; в някоя декларация на функция в предните h файлове


Жив да си, имаш една бира от мене. :D Никога не бих се сетил. Още повече, че проблемната декларация е изключена когато се компилира за Win симулатора и като решиш да билдваш target - изненада. :)

Автор:  Цецо [ Пет Авг 31, 2007 10:36 am ]
Заглавие: 

ааааааааа това си е стандартен проблем, да забравиш ; в предходния фаил и да ти даде грешка в следващия. Що псувни съм излял....

Автор:  woody [ Пет Авг 31, 2007 12:00 pm ]
Заглавие: 

Парсерът работи по зададена граматика и докато входящите token-и я удовлетворяват няма как да издаде съобщение за грешка. ;-)

Автор:  Цецо [ Пет Авг 31, 2007 3:33 pm ]
Заглавие: 

ахъ, ама 3 часа като утепаш, наеш как ми пука за граматиката на пасера :)

Автор:  Реконструктор [ Пет Авг 31, 2007 7:24 pm ]
Заглавие: 

Абе не, че правя реклама, но ми се струва, че М$ компилера работи по-добре. :) Случвало ми се до сега и обикновено се обажда ако не на същия ред, то поне в същия файл.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/