单片机中经常定义的结构体解读
单片机中经常定义的结构体解读
✅原代码
/* Clark变换为例 */
typedef struct {float Iu;float Iv;float Iw;float Alpha;float Beta;
} CLARKE, *M_CLARKE;
🔍解读
struct {...}
定义了一个匿名结构体, 即没有名字的结构体;CLARKE
是给结构体定义的一个类型别名, 之后就可以使用CLARKE
来声明结构体变量, 例如:
CLARKE current;
/* 等价于 */
struct {...} current;
*M_CLARKE
, 这里的*
表示指针,M_CLARKE
是一个指向CLARKE
类型结构体的指针的类型别名, 也就是说:
M_CLARKE ptr;
/* 等价于 */
CLARKE *ptr;
- 上述代码在一条语句中定义了两个类型别名
type aliases
, 用逗号,
分隔;typedef
的通用形式为:typedef <旧类型名> <新类型名>;
typedef int Integer;
typedef float Voltage;Integer x;/* 定义了三个类型别名 */
typedef int A, *B, C[10];
/* A等价于 int */
/* B等价于 int* */
/* C等价于 int[10] */