C结构体定义问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:37:30
typedef struct A
{
void **date;
}B,*C;

typedef struct
{
void **date;
}D;

解释下他们分别是什么意思

有什么区别

typedef struct A
{
void **date;
}B,*C;
//这个定义一个结构.这个结构的名字叫A,然后定义两个变量B,*C.这两个变量类型为A.
相当於
typedef struct A
{
void **date;
};
A B,*C;

typedef struct
{
void **date;
}D;
//这个定义了一个结构,这个结构没起名字.然后定义一个变量,这个变量的类型就是这个结构.相似於int a;a的类型为int这样.

第一个是定义了两个新类型名!!!一个是变量类型名B ,一个是指针类型变量名C。比如:定义C *l;那么l就指向的变量就是定义的类型的变量。
而第二个只是定义了一个普通变量的类型,自定义新类型时可以定义多个类型。