我知道struct和struct之间的差异,前面有typedef关键字。引用如下:typedef struct vs struct definitions
struct myStruct{
int one;
int two;
};
VS
typedef struct{
int one;
int two;
}myStruct;
但这两种类型之间的区别是什么:
struct point {
int x;
int y;
};
VS
struct point {
int x;
int y;
} my_point;
还有一个:
typedef struct set_t{
int count;
void **values;
} *SetRef;
这是什么类型的?
答案 0 :(得分:2)
struct point { int x; int y; };
这声明了一个新类型struct point
,其中有两个int
成员x
和y
。
struct point { int x; int y; } my_point;
这也声明了一个新类型struct point
,其中包含两个int
成员x
和y
,这声明了my_point
类型的对象struct point
。
答案 1 :(得分:2)
my_point
是struct point
类型的变量。
答案 2 :(得分:1)
第一个声明struct
类型,而第二个声明类型和实例my_point
。换句话说,my_point
不是类型,而是实际的struct point
实例。
答案 3 :(得分:1)
在第二个中,您还可以从my_point
类型定义变量(名为struct point
)。
答案 4 :(得分:1)
第一个只宣告结构。稍后您将不得不使用它来创建它的对象。 第二个是同时声明结构和它的一个对象。