C 带有结构定义的typedef语法
我有一个微控制器的示例代码 有一个结构C 带有结构定义的typedef语法,c,typedef,C,Typedef,我有一个微控制器的示例代码 有一个结构typedefd,如下所示 typedef struct _AT91S_SYS { AT91_REG AIC_SMR[32]; // Source Mode Register AT91_REG AIC_SVR[32]; // Source Vector Register AT91_REG AIC_IVR; // IRQ Vector Register ... } AT91S_SYS, *AT
typedef
d,如下所示
typedef struct _AT91S_SYS {
AT91_REG AIC_SMR[32]; // Source Mode Register
AT91_REG AIC_SVR[32]; // Source Vector Register
AT91_REG AIC_IVR; // IRQ Vector Register
...
} AT91S_SYS, *AT91PS_SYS;
我已经将typedef
与结构一起使用,比如}AT91S\u SYS代码>
这个附加部分的作用是什么<代码>*AT91PS\U系统代码>在AT91S\U系统中,*AT91PS\U系统代码>
它是指向struct\u AT91S\u SYS
类型的指针吗
AT91_REG
是一个AT91S_SYS
的typedef
类型,它只是将类型AT91S_SYS
定义为指向AT91S_SYS
的指针
顺便说一句,理解typedef
最简单的方法是阅读声明的其余部分,就好像它只是一个变量声明一样。但是,不是定义变量,而是使用变量可能具有的任何类型来定义类型
那么比如说,
int x, *y, z[5];
定义三个变量,int x
、int*y
和int z[5]
所以,
typedef int x, *y, z[5];
定义两种类型,x==int
,y==int*
和z==int[5]
。简单 这只是将类型AT91PS_SYS
定义为指向AT91S_SYS
的指针
顺便说一句,理解typedef
最简单的方法是阅读声明的其余部分,就好像它只是一个变量声明一样。但是,不是定义变量,而是使用变量可能具有的任何类型来定义类型
那么比如说,
int x, *y, z[5];
定义三个变量,int x
、int*y
和int z[5]
所以,
typedef int x, *y, z[5];
定义两种类型,x==int
,y==int*
和z==int[5]
。简单 是的,你是对的,语法相当于:
typedef struct _AT91S_SYS AT91S_SYS;
typedef struct _AT91S_SYS *AT91PS_SYS;
因此AT91PS_SYS
是一种指针类型的AT91S_SYS
是的,您是对的,语法相当于:
typedef struct _AT91S_SYS AT91S_SYS;
typedef struct _AT91S_SYS *AT91PS_SYS;
因此AT91PS_SYS
是AT91S_SYS
的指针类型