
1 BiteTheDust 2020-03-17 18:28:39 +08:00 建议别看了 我也看不懂 |
2 lcdtyph 2020-03-17 18:35:27 +08:00 via iPhone LinkList 就是 struct LNode * 这个 typedef 拆开就好看了 定义一个指针: typedef int *pint; int a = 3; pint pa = &a; |
5 Jirajine 2020-03-17 19:19:33 +08:00 via Android typedef 就是把组合了一堆东西的 declarator“封装”成一个“单词”(type name)直接当做一个新的 type 使用。 C/C++的 declarator 那一套规则很恶心,完全无法理解其组合方向、优先顺序的设计到底是什么理念。 |
6 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 的中间别名。 |
7 season4675 2020-03-17 19:55:39 +08:00 有引用,这个是 C++不是 C……本来想多说点的,上面都回答了…… |
8 msg7086 2020-03-18 06:08:10 +08:00 刚想说这是 C++不是 C,结果上面都说了…… |