#define T1 struct foo *
typedef struct foo *T2
两种都是定义,两种都实现了当对类型修改时,只需改类型声明的地方。但是看
T1 a, b;
T2 a, b;
第一个声明被扩展为
struct foo * a, b;
该语句中a被定义为一个指向结构的指针,而b却被定义为一个结构。
所以用宏来做类型声明不可取。
#define T1 struct foo *
typedef struct foo *T2
两种都是定义,两种都实现了当对类型修改时,只需改类型声明的地方。但是看
T1 a, b;
T2 a, b;
第一个声明被扩展为
struct foo * a, b;
该语句中a被定义为一个指向结构的指针,而b却被定义为一个结构。
所以用宏来做类型声明不可取。