ошибка после компиляции в C - PullRequest
       23

ошибка после компиляции в C

0 голосов
/ 23 февраля 2011

Я поместил все структуры в заголовочный файл с именем structure.h:

struct mac_filter { 
    u_char ether_dhost[ETHER_ADDR_LEN]; 
    u_char ether_shost[ETHER_ADDR_LEN]; 
    u_short ether_type; 
}__attribute__ ((packed));

Когда я компилирую структуру .h я получаю следующие ошибки:

error: expected specifier-qualifier-list before ‘u_char’
u_char ether_dhost[ETHER_ADDR_LEN];(line at which there is an error )

error: expected specifier-qualifier-list before ‘u_int16_t’
u_int16_t uh_sport;(line at which there is an error )

Как сделатьЯ разрешаю эти ошибки?

1 Ответ

1 голос
/ 23 февраля 2011

Если это сработало до того, как вы начали перемещать вещи, скорее всего, потому что u_char и u_int16_t не определены в этой точке.

Временно измените типы на int и посмотрите, исчезнет ли проблема (хотя вы можете увидеть другие проблемы из-за этого).

Если это так, верните их обратно и убедитесь, что типы определены, прежде чем пытаться их использовать. Например, убедитесь, что заголовки включены в правильном порядке, чтобы сделать это. Если бы вы опубликовали код, вам было бы намного проще точно сказать, как его исправить.


И я стесняюсь спросить это, потому что это звучит снисходительно. Вы не на самом деле пытаетесь скомпилировать заголовочный файл самостоятельно, не так ли? Я спрашиваю просто из-за вашего комментария "когда я скомпилировал эту структуру .h". Если да, то не должно быть. Вы должны компилировать файлы C, которые #include заголовочные файлы.

Извините, если я обиделась, это не было моим намерением. Просто я видел удивительные вещи, которые пытаются делать некоторые люди, и это имело смысл: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...