Цитата(seneka @ Mar 24 2014, 13:28)

Наверное Вам нужно объявить в include файле тип структуры операторм typedef
Это не помогает - я уже пробовал.
Если непосредственно перед struct uip_eth_hdr объявить структуру struct uip_eth_addr, ошибка пропадает.
Код
/**
* Representation of a 48-bit Ethernet address.
*/
struct uip_eth_addr{
u8_t addr[6];
};
/**
* The Ethernet header.
*/
struct uip_eth_hdr {
struct uip_eth_addr dest;
struct uip_eth_addr src;
u16_t type;
};
Если же оставить описание структуры struct uip_eth_addr в другом h-файле и использовать подключение этого файла с текущему h-файлу, тогда появляется.
Если структура struct uip_eth_addr описана в файле uip.h, которые подключается в файле uip_arp_.h, в котором она используется для описания структуры uip_eth_hdr, то у меня есть предположение, что если гдето в другом месте проекта uip.h уже был подключён, то в файле uip_arp.h подключение не сработает из-за директив #ifndef __UIP_H__ #define __UIP_H__ #endif //__UIP_H__, поэтому IAR и ругается.
Правда я проверил все подключения uip.h в проекте, но нигде криминала не нашёл. В основном они подключаются в c-файлах, добавленных к проекту, а также в h-файлах uip_arp.h, httpd-fsdata.h, uip_arch.h. Причём если закоментировать подключение uip.h в uip_arch.h, то новых ошибок не появляется.
Я пока что затрудняюсь найти ответ на решение моей проблемы.