Цитата(Sergio66 @ Jan 23 2007, 17:02)

да компиллятору то и не на что ругаться. Именно компоновщик не может привести типы.
IAR 4.20A
С каких пор компоновщики стали понимать типы? ИМХО для каждого объекта он должен знать секцию, адрес, размер и выравнивание... Ну может еще что-то, но типы? Или я отстал от жизни?
В конце концов попробуйте то же самое собрать gcc.
Цитата(prottoss @ Jan 23 2007, 17:23)

Цитата(Sergio66 @ Jan 23 2007, 21:31)

Есть такое определение:
далее идут определения переменных в файле menu.c (!!!)
item_struct_type Main_menu[NUMBER] = {инициализация};
есть файл menu.h со следующими строками:
extern item_struct_type Main_menu[NUMBER] ;
А зачем extern item_struct_type *current_menu;???
зачем определять указатель, если каждому юниту извесно про extern item_struct_type Main_menu[NUMBER] ;???
Каждый юнит когда угодно может взять и создать указатель на массив... не из-за этого ли варнинги?
К тому же подозрительно выглядит присвоение в хедере...
Читайте внимательнее - в хидере только typedef и extern декларация. Настоящая декларация и инициализация в .c файле. Повторяю, у меня на gcc такое прокатывает на ура.