#define WrUTXH1(ch) (*(volatile unsigned char *)(0x1d04023))=(unsigned char)(ch)
请各位大侠帮忙解析这语句的结构,我没看懂。帮个忙,谢谢!
unsigned char x = ch; //这种赋值肯定能懂,一般x的地址是由编译器自行决定。
现在
(*(volatile unsigned char *)(0x1d04023))就相当于x,只不过x的地址由程序员指定了在0x1d04023。
(volatile unsigned char *)(0x1d04023)说明0x1d0423是一个(unsigned char*)的地址。
那么要获取这个地址所存储的值怎么办?就是c语言的指针取值,前面加个*。
volatile表示这个地址存的值是必须实时更新,而不能用之前保存的值。就像卖货,必须以实时库存来确认,不能用昨天的库存来告诉客户一样。