15.typedef在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的工作,如下:
以上两种情况都是要定义dPS和tPS作为一个指向结构s的指针,哪种方法更好?
- #define dPS struct *s
- typedef struct s *tPS;
答案是typedef。思考下面的例子:
则第一个扩展为:struct s *p1,p2;
- dPS p1,p2;
- tPS p3,p4;
上面的代码定义p1为一个指向结构的指针,而p2为一个实际的结构。所以应该选择typedef方式。
16.c语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是,它做些什么?
合法,编译成:c = a++ + b;因此执行后a=6,b=7,c=12;
- int a=5,b=7,c;
- c = a+++b;