预期的说明符 - 限定符 - 列表之前

时间:2010-10-08 07:40:59

标签: c

我有这个结构类型定义:

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

编译时,gcc会抛出此错误:

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

这是什么意思?它似乎与此错误的其他问题无关。

2 个答案:

答案 0 :(得分:28)

在声明之前使用了confType。 (下一个)。相反,试试这个:

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

答案 1 :(得分:16)

JoshD的回答现在是正确的,我通常会选择相同的变体:

typedef struct confType confType;

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

当您只想公开不透明指针时,将typedef放在头文件(接口)和源文件(实现)中的struct声明中。