不同类型的结构

时间:2012-02-21 16:31:57

标签: c struct

我知道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;

这是什么类型的?

5 个答案:

答案 0 :(得分:2)

struct point { int x; int y; };

这声明了一个新类型struct point,其中有两个int成员xy

struct point { int x; int y; } my_point;

这也声明了一个新类型struct point,其中包含两个int成员xy,这声明了my_point类型的对象struct point

答案 1 :(得分:2)

my_pointstruct point类型的变量。

答案 2 :(得分:1)

第一个声明struct类型,而第二个声明类型和实例my_point。换句话说,my_point不是类型,而是实际的struct point实例。

答案 3 :(得分:1)

在第二个中,您还可以从my_point类型定义变量(名为struct point)。

答案 4 :(得分:1)

第一个只宣告结构。稍后您将不得不使用它来创建它的对象。 第二个是同时声明结构和它的一个对象。