tags:

views:

31

answers:

2

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.

+3  A: 

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;
JoshD
Thanks! It's obvious now that I've seen this.
Delan Azabani
@Delan Azabani: Thank you for correcting my answer. :)
JoshD
+1  A: 

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

schot