typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct、union等)。在编程中使用typedef目的一般有两个:
- 给变量一个易记且意义明确的别名,
- 简化一些比较复杂的类型声明。
typedef的使用方法:按定义变量的方式,只是把变量名换成新的类型名,并且在前面加上“ typedef ”,就声明了新类型名代表原来的类型。
#include <stdio.h>
typedef unsigned int uint32_t;//如何使用typedef指定新的类型名
typedef uint32_t wordarray[5];//如何使用typedef指定新的类型名
typedef enum//如何使用typedef指定新的枚举类型
{
GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode */
GPIO_Mode_OUT = 0x01, /*!< GPIO Output Mode */
}GPIOMode_TypeDef;
typedef struct
{
uint32_t GPIO_Pin;/*!< Specifies the GPIO pins to be configured.*/
GPIOMode_TypeDef GPIO_Mode; /*!< Specifies the operating mode for the selected pins.*/
}GPIO_InitTypeDef;
#define GPIO_Pin_9 ((uint32_t)0x0200) /* 注意:define的新名字在前面,typedef在后面 */
int main(void) {
uint32_t word=0xffff;//word是一个32位的变量
wordarray regis;//regis有5个元素,每个元素都是32位的变量
GPIO_InitTypeDef GPIO_InitStructure;//使用typedef指定的结构体类型如何定义结构体
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //GPIOA9
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//输入用功能
}