Внешний массив структур - PullRequest
       25

Внешний массив структур

0 голосов
/ 17 января 2012

У меня есть глобальный массив структуры, объявленный как

struct _links link[255][255][255];

в моем main.c. Этот массив структур также используется в другом файле, action.c, и я попытался объявить его в action.c как extern, т.е.

extern struct _links link[255][255][255];

Однако я получил сообщение об ошибке «Тип массива имеет неполный тип элемента». Я не понимаю, что это значит. Как я могу решить эту проблему?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 17 января 2012

Определите свою структуру struct _links в заголовочном файле; включите его в my_main.c и action.c, скомпилируйте их отдельно и свяжите.

Работает без заголовочного файла для встроенных типов данных. но для пользовательских типов данных требуется заголовочный файл.

2 голосов
/ 17 января 2012

Вы должны где-то объявить тип struct _links.

1 голос
/ 17 января 2012

Хорошей практикой программирования является создание нового файла links.h, который содержит

extern struct _links link[255][255][255];

, включая этот файл как в main.c, так и в action.c.

не забудьтеОпределите переменную только один раз.

Для получения дополнительной информации о ключевом слове extern, посмотрите этот пост https://stackoverflow.com/a/1433387/1117720

...