以前一直有这么个误区。现在解决了。
C语言给结构体定义别名用typedef关键字操作,就两种情况:
1、
给结构体起一个别名,如:
typedef struct ABC{
...
}S;
这就为结构体ABC定义了一个别名S。以后写S x;就等价于写struct ABC x 。
2、
给结构体指针起一个别名,如:
typedef struct ABC{
...
}* PS;
这就为结构体指针ABC * 定义了一个别名PS。以后写PS pt ; 就等价于写struct ABC *pt 。
注意!!这里是用typedef给struct ABC{...} *起一个别名PS,而不是给struct ABC{...}起一个别名*PS
后者是说不通的,起码的错误是标识符不可能以*开头!