抱歉这个新手问题,但我在网上找不到任何好资源来解释这意味着什么:
struct {
struct spinlock lock;
struct proc proc[NPROC]; //NPROC = 64
} ptable;
我通过网络查看资源并找到这些类型的定义结构:
//first method
struct Foo { ... };
//second method
typedef struct Foo { ... } Foo;
答案 0 :(得分:2)
struct foo { ... };
struct标签(此处为foo
)是可选的。如果在示例中省略它,则可以使用此类型的变量ptable
,但稍后无法定义此类型的其他变量。
答案 1 :(得分:1)
struct
{
struct spinlock lock;
struct proc proc[NPROC]; //NPROC = 64
}
ptable;
这定义了一个nameless struct
,同时声明了一个名为ptable
的变量
正如Yu Hao所指出的,您以后不能定义此结构类型的变量。您可以在定义无名结构
时生成尽可能多的变量struct
{
/* your variables*/
} a,b[2] ;
与命名结构相反,
struct my_struct
{
/* your variables*/
} a,b[2] ;
您可以稍后将变量定义为struct my_struct c