ошибка: ожидаемый список спецификаторов-спецификаторов перед «ObjectP» в c - CIRCULAR DEPENDENCY - PullRequest
0 голосов
/ 22 августа 2011

Я написал небольшой заголовочный файл и продолжаю получать эту ошибку:

expected specifier-qualifier-list before ‘ObjectP’

Я искал ответ и понимаю, что это из-за того, как компилятор анализирует текст. ObjectP определено в GenericHashTable.h, что включено, как вы можете видеть. Я пытался написать #include ПОСЛЕ определения структуры, не помогло. Вот проблемный код с помеченной строкой ошибки:

#include "GenericHashTable.h"

typedef struct List* ListP;
typedef struct List
{
    unsigned int size;
    ObjectP head; <----- ERROR HERE
} List;

Есть идеи? спасибо!

РЕДАКТИРОВАТЬ: Я думаю, я знаю, где проблема. «List.h» включает в себя «GenericHashMap.h» и наоборот, поэтому у меня есть круговая зависимость. Когда я удаляю оператор #include из одного из них, он компилируется, а другой получает сообщение об ошибке.

Должен ли я как-то разорвать этот круг, или есть другое решение? Спасибо!

1 Ответ

0 голосов
/ 22 августа 2011

Я не уверен на 100% в этом решении, так как я не вижу ваш GenericHashTable.h.Но было бы полезно, если вы сделаете определение ObjectP в другом файле заголовка, который включен в ваш GenericHashTable.h, а ваш заголовок определяет список.

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