结构体基础
一、基础
Struct book library;
它把libray声明为一个使用book结构设计的结构变量。Struct book所起的作用就像int 或float在较简单的声明中作用一样。
以上是下面声明的简化:
Struct book {
Chartile[MAXTITL];
Charauthor[MAXAUTL];
Floatvalue;
}library;
声明结构的过程和定义变量的过程可以合成一个过程。下面不使用标记的情况:
Struct {
Chartile[MAXTITL];
Charauthor[MAXAUTL];
Floatvalue;
}library;
然而,若要多次使用一个结构模板,就需要使用带有标记的形式。
二、TYPEDEF
Typedef和#define
1、typedef给出的符号仅限于类型,而不是对值。
2、typedef的解释由编译器,而不是预处理器执行。
3、范围有限,但在其范围内,比#define更为灵活。
Typedef unsigned char BYTE
BYTE x,y[10],z;
该定义的作用域取决于typedef所在的位置。
#define BYTE unsigned char
这使预处理器用unsigned char 来代替BYTE ,又如:
Typedef char *STRING ;
如果没有关键字typedef ,该例将STRING识别为一个char 指针,有了这个关键字,使STRING成为char 指针的标识符。因此:
STRING name,sign;
意思是:
Char *name,*sign;
但是假设这样做:
#define STRING char*
那么:
STRING name,sign;
意思为:
Char *name,sign;//在这种情况下,只有name为指针。
Typedef struct complex{
Fliat real;
Float imag;
}COMPLEX;
可以用类型COMPLEX代替struct complex来表示复数。
1051

被折叠的 条评论
为什么被折叠?



