Expected Specifier-Qualifier-List Before

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.

4

2 Answers

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;
1

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).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Alexander Ross
Author

Alexander Ross

Alexander Ross has covered the video game industry for a decade, writing deep dives on game design, esports tournaments, VR developments, and gaming culture.