功能:
#define ASSOC(port) (*(volatile bit_field *) (&port))
函数调用:
#define SCLK ASSOC(PORTC).bit0
bit_field 定义为这样的结构:
typedef struct {
unsigned char bit0 :1, bit1 :1, bit2 :1, bit3 :1, bit4 :1, bit5 :1,
bit6 :1, bit7 :1;
} bit_field;
我不知道 &port 是在哪里定义的。
有人可以解释一下这个函数是如何读取的以及它是如何工作的吗?我对指针不是很好,尤其是这个例子很容易混淆前面和结尾的“*”以及端口的“&”。
谢谢