特殊的结构类型
Peculiar struct type
所以我在查看 Microchip 的 dsPIC MCU 头文件时偶然发现了这个结构:
/* Generic structure of entire SFR area for each UART module */
typedef struct tagUART {
uint16_t uxmode;
uint16_t uxsta;
uint16_t uxtxreg;
uint16_t uxrxreg;
uint16_t uxbrg;
} UART, *PUART;
我似乎无法弄清楚这里的类型或实例是什么(以及这样设计的目的):
- 什么是tagUART?
- 什么是 UART?
- 什么是*PUART?
它是一体化形式的
struct tagUART { // the structure itself with all its details
uint16_t uxmode;
uint16_t uxsta;
uint16_t uxtxreg;
uint16_t uxrxreg;
uint16_t uxbrg;
};
typedef struct tagUART UART; // UART is a shorter name for struct tagUART
typedef struct tagUART *PUART; // PUART is a pointer-type to such a struct
What is tagUART?
这是结构的名称。
What is UART?
这是结构的 typedef/alias。
What is *PUART?
它是一个 typedef/alias 指向结构的指针。
所以我在查看 Microchip 的 dsPIC MCU 头文件时偶然发现了这个结构:
/* Generic structure of entire SFR area for each UART module */
typedef struct tagUART {
uint16_t uxmode;
uint16_t uxsta;
uint16_t uxtxreg;
uint16_t uxrxreg;
uint16_t uxbrg;
} UART, *PUART;
我似乎无法弄清楚这里的类型或实例是什么(以及这样设计的目的):
- 什么是tagUART?
- 什么是 UART?
- 什么是*PUART?
它是一体化形式的
struct tagUART { // the structure itself with all its details
uint16_t uxmode;
uint16_t uxsta;
uint16_t uxtxreg;
uint16_t uxrxreg;
uint16_t uxbrg;
};
typedef struct tagUART UART; // UART is a shorter name for struct tagUART
typedef struct tagUART *PUART; // PUART is a pointer-type to such a struct
What is tagUART?
这是结构的名称。
What is UART?
这是结构的 typedef/alias。
What is *PUART?
它是一个 typedef/alias 指向结构的指针。