ipwx
2020-03-17 19:28:32 +08:00
先学会 C 的类型声明,比如:
int a; // a 是 一个整型
int *a; // a 是 一个指向整型的指针
int *a[1024]; // a 是一个 1024 个指向整型的指针的数组
int (*f)(int,int); // f 是一个指向 int(int,int) 函数的指针
char* (*g)(char*); // g 是一个指向 char*(char*) 函数的指针
然后 typedef 你直接套进去,定义出来的变量和上面每一行一一等价。
typedef int A; A a;
typedef int* A; A a;
typedef int* A[1024]; A a;
typedef int (*F)(int, int); F f;
typedef char* (*G)(char*); G g;
最后,typedef struct { ... } YYY; 等价于:
struct XXX { ... }
typedef struct XXX YYY;
只不过就是省略了一个 struct XXX 的中间别名。