由于系统职位变量分配存储空间,不为类型分配空间,因此,不能用关键词register,auto,extern来修饰结构体类型中的成员,但可用static修饰结构体类型中的成员。
被static修饰的结构体成员称为静态成员。静态成员不同于其他存储类型的成员,所有该结构体类型的变量都共享静态成员。可以利用静态成员的这一特性,存储共享信息或进行数据传递。
由于在定义结构体类型时,并没有为静态成员分配存储空间,因此,必须在定义结构体类型变量之前为静态成员分配存储空间并设置初值,为其分配空间并置初值的格式为:
<静态成员数据类型><结构体类型>::<静态成员>=<初值>;
其中,::是作用域运算符,当省略置初值时,缺省的初值为0
如:#include<iostream.h>
struct abc{
static int a;
int b;
}x,y;
int abc::a=2;
void main()
{
}