Delan Azabani
Delan Azabani

Reputation: 81384

expected specifier-qualifier-list before

I have this struct type definition:

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

When compiling, gcc throws this error:

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

What does this mean? It doesn't seem related to other questions with this error.

Upvotes: 30

Views: 94523

Answers (2)

schot
schot

Reputation: 11268

JoshD's answer now is correct, I usually go for an equivalent variant:

typedef struct confType confType;

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

When you only want to expose opaque pointers, you put the typedef in your header file (interface) and the struct declaration in your source file (implementation).

Upvotes: 23

JoshD
JoshD

Reputation: 12814

You used confType before you declared it. (for next). Instead, try this:

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

Upvotes: 38

Related Questions