编译器错误:"expected specifier-qualifier-list"

Compiler Error: "expected specifier-qualifier-list"

本文关键字:expected specifier-qualifier-list 错误 编译器      更新时间:2023-10-16
int main()
{
    typedef struct a
    {
        static int w;
        char *p;
    } a;
}

编译得到 error:expected specifier-qualifier-list before 'static'你能告诉我这个错误是什么意思以及如何消除它吗?

c++中局部类不能有静态数据成员。

引用标准(第9.8.4段)

局部类不能有静态数据成员。

在不太可能的情况下,局部类是在函数作用域中定义的类、结构或联合。

9.8.1

类可以在函数定义中定义;这样的类是叫做本地类

static是一个存储类,所以它不适用于typedef。它和registerconst是一样的。

即使static工作,w怎么会是静态的而p不是静态的呢?

int main()
{
    typedef struct a
    {
        int w;
        char *p;
    } a;
    static a a0;
}