GPIO_DATA_REGS 是结构名
而GpioDataRegs是该结构类型的变量名
extern volatile struct GPIO_DATA_REGS GpioDataRegs;
分解:
结构体,在代码中某处,肯定会有类似的定义, GPIO_DATA_REGS 是结构名
struct GPIO_DATA_REGS
{
};
而GpioDataRegs是该结构类型的变量名
extern 是外部声明,就是说GpioDataRegs这个变量已经在其他文件中定义了,加上extern,表示该文件中的这个变量是其它文件定义的
volatile 这个是告诉编译器不要对你的这个变量做优化, 有时候编译时,如果编译器发现你的变量没有用,或做的是无效操作,它就帮你优化掉了,比如你读一个寄存器的值,但是你又不用,类似于这样的
加了这个volatile之后就不会被优化掉了