int main()
{
typedef struct a
{
static int w;
char *p;
} a;
}
编译时会给 error:expected specifier-qualifier-list before 'static'
你可以告诉我这个错误意味着什么,以及如何删除它?
答案 0 :(得分:5)
本地类在C ++中不能包含静态数据成员。
引用标准(第9.8.4段)
本地类不应有静态数据成员。
在不太可能的情况下,您不知道,本地类是在函数范围内定义的类,结构或联合。
9.8.1
可以在函数定义中定义类;这样的课是 称为本地班。
答案 1 :(得分:-1)
static
是一个存储类,因此无法正确应用于typedef
。它与register
和const
的行相同。
即使static
有效,w
如何保持静态且p
不是静态的?
这会有效:
int main()
{
typedef struct a
{
int w;
char *p;
} a;
static a a0;
}