Подтвердить что ты не робот

Ожидаемый список спецификаторов-спецификаторов до

У меня есть это определение типа struct:

typedef struct {
    char *key;
    long canTag;
    long canSet;
    long allowMultiple;
    confType *next;
} confType;

При компиляции gcc выдает эту ошибку:

conf.c:6: error: expected specifier-qualifier-list before ‘confType’

Что это значит? Это не похоже на другие вопросы с этой ошибкой.

4b9b3361

Ответ 1

Вы использовали confType, прежде чем объявили его. (для следующего). Вместо этого попробуйте следующее:

typedef struct confType {
    char *key;
    long canTag;
    long canSet;
    long allowMultiple;
    struct confType *next;
} confType;

Ответ 2

Теперь ответ JoshD верен, я обычно предпочитаю эквивалентный вариант:

typedef struct confType confType;

struct confType {
    char *key;
    long canTag;
    long canSet;
    long allowMultiple;
    confType *next;
};

Если вы хотите показывать непрозрачные указатели, вы помещаете typedef в свой файл заголовка (интерфейс) и объявление struct в исходный файл (реализация).