15.typedef在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的工作,如下:

  1. #define dPS struct *s 
  2. typedef struct s *tPS;
以上两种情况都是要定义dPS和tPS作为一个指向结构s的指针,哪种方法更好?
答案是typedef。思考下面的例子:
  1. dPS p1,p2; 
  2. tPS p3,p4;
则第一个扩展为:struct s *p1,p2;
上面的代码定义p1为一个指向结构的指针,而p2为一个实际的结构。所以应该选择typedef方式。

16.c语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是,它做些什么?
  1. int a=5,b=7,c; 
  2. c = a+++b;
合法,编译成:c = a++ + b;因此执行后a=6,b=7,c=12;