typedef struct STASHtag{
....} Stash;===>Stash== struct STASHtagStash 是struct STASHtag结构的另名

解决方案 »

  1.   

    Stash是类型没错。
    typedef从功能上有点象define,他定义了一个结构STASHtag,然后把这个结构赋于一个简单的名称Stash,Stash是这种结构的一个类型。因为有时候需要这样定义。typedef struct STASHtag{
    int size;/* */
    int quantity;
    int next
    unsigned char* storage;
    } Stash *pStash;
    这里Stash, pStash都是这个结构的类型。
      

  2.   

    对,引用的时候应用Stash就可以了
      

  3.   

    类型定义
    typedef struct STASHtag{
    int size;/* */
    int quantity;
    int next
    unsigned char* storage;
    } Stash;
    等同于
     struct STASHtag{
    int size;/* */
    int quantity;
    int next
    unsigned char* storage;
    };
    typedef STASHtag Stash;
      

  4.   

    上面有误,Stash *pStash之间应有逗号。
      

  5.   

    你的理解是错误的。上面定义了一个结构STASHtag,同时定义了一个数据
    类型 Stash。 而 Stash 实际上就是结构STASHtag的另一个名字。因此
    void initialize(Stash* s,int Size); 就相当于
    void initialize(struct STASHtag* s,int Size);
    不过,编译器会做类型检查,认为 struct STASHtag 和 Stash 不是一个
    类型。但是它们在本质上是一样的。
      

  6.   

    没有问题。
    该定义相当于:
    struct STASHTag{...};  //定义了一个结构
    typed STASHtag Stash;    //用Stash代替结构体STASHtag上面也可定义为:
    struct STASHTag{...};  //定义了一个结构
    #define Stash struct STASHtag;    //用Stash代替结构体STASHtag这样声明一个结构体变量使用如下形式:
    Stash s;   //s是一个STASHtag结构体变量
    否则得做如下声明:
    struct STASHtag s;
      

  7.   

    以上程序就等于
    struct STASHtag{
    int size;/* */
    int quantity;
    int next
    unsigned char* storage;
    } ;
    typedef  STASHtag Stash;