Stash是类型没错。 typedef从功能上有点象define,他定义了一个结构STASHtag,然后把这个结构赋于一个简单的名称Stash,Stash是这种结构的一个类型。因为有时候需要这样定义。typedef struct STASHtag{ int size;/* */ int quantity; int next unsigned char* storage; } Stash *pStash; 这里Stash, pStash都是这个结构的类型。
对,引用的时候应用Stash就可以了
类型定义 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;
typedef从功能上有点象define,他定义了一个结构STASHtag,然后把这个结构赋于一个简单的名称Stash,Stash是这种结构的一个类型。因为有时候需要这样定义。typedef struct STASHtag{
int size;/* */
int quantity;
int next
unsigned char* storage;
} Stash *pStash;
这里Stash, pStash都是这个结构的类型。
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;
类型 Stash。 而 Stash 实际上就是结构STASHtag的另一个名字。因此
void initialize(Stash* s,int Size); 就相当于
void initialize(struct STASHtag* s,int Size);
不过,编译器会做类型检查,认为 struct STASHtag 和 Stash 不是一个
类型。但是它们在本质上是一样的。
该定义相当于:
struct STASHTag{...}; //定义了一个结构
typed STASHtag Stash; //用Stash代替结构体STASHtag上面也可定义为:
struct STASHTag{...}; //定义了一个结构
#define Stash struct STASHtag; //用Stash代替结构体STASHtag这样声明一个结构体变量使用如下形式:
Stash s; //s是一个STASHtag结构体变量
否则得做如下声明:
struct STASHtag s;
struct STASHtag{
int size;/* */
int quantity;
int next
unsigned char* storage;
} ;
typedef STASHtag Stash;