chapter 3(声明)

chapter 3(声明)

知识点:

1.int 变量跟只包含一个int 成员的结构变量,在传递参数的方式可能完全不同。一个 int参数一般会传递到寄存器中,而结构参数很可能被传递到堆栈中。

2.在结构中放置数组,可以讲数组当做第一等级类型,用赋值语句拷贝整个数组。
struct s_tag { int a[100];};
struct s_tag orange, lime;

int main()
{
     int i;
     for(i=0; i<100; i++) lime.a[i]=1;
    orange=lime;  // 对整个结构赋值
}

3.union
为了节省空间
为了把一个数据解释为两种不同的东西。

4.enum
#define定义的名字一般在编译时期被丢弃,而枚举名字则通常一直在调试器中可见。可以再调试代码的时候看见他们。

5.typedef int x[10] 与 #define x int[10]区别
可以用其他类型说明符对宏类型名进行扩展 ,但是不能对type的饭定义的类型名,进行扩展
#define peach int
unsigned peach i;//right

typedef int banana;
unsigned banana i;//error

在连续几个变量声明中,用typedef定义的类型能够保证声明中 所有变量均为同一种类型,但是#define定义的类型不能保证。

#define int_ptr int*;
int_ptr chalk, cheese;
结果:int * chalk, cheese;(他们两个类型不同)

#typedef char* char_ptr
char_ptr ben, rool(两个都是指向char的指针)


6. 不要为了方便对结构使用typedef,虽然可以省去struct但是省去了提示信息。
用在数组,结构,指针,以及函数的组合类型。结构标签可以添加“_tag”结尾。

你可能感兴趣的:(chapter 3(声明))