结构编译错误中的枚举

时间:2011-12-18 02:05:29

标签: c++ enums struct

正如标题所说,代码打击给出了g ++的错误:

error: expected specifier-qualifier-list before ‘logType’

代码:

enum 
{
     log_memory,
     log_filesystem,
     log_default
}logType;

typedef struct
{
     logType type;
     void (*logPrint)(char* msg);

}logsystem;

2 个答案:

答案 0 :(得分:3)

此:

enum
{
    ...
} logType;

声明变量,而不是类型。你想要这个:

enum logType
{
    ...
};

[附注:通常的C ++约定是类型名称以大写字母开头。]

答案 1 :(得分:2)

在声明enum时,您在单词enum后面指定了它的名称,这与使用typedef为结构创建别名不同。

enum logType
{
     log_memory,
     log_filesystem,
     log_default
};