先贴代码
void uart_enable(UART_Type *base)
{
base->UCR1 &= ~(1<<0);
}
我的疑问就是:
数据base是一个指向UART_Type类型的指针
为什么可以这样使用,直接就操作base->UCR1。
不应该先取值吗,*base->UCR1 &= ~(1<<0)这样吗?
base->UCR1 &= ~(1<<0);
或者(*base).UCR1 &= ~(1<<0);
第二种可能不能将数值改变的结果带出去
要看UART_Type怎么定义的
如果是
typedef struct
{
...
} * UART_Type;
那么UART_Type是指针,base是指针的指针。
但是你这里,base应该是指针,UART_Type不是。