Функция:
#define ASSOC(port) (*(volatile bit_field *) (&port))
Вызов функции:
#define SCLK ASSOC(PORTC).bit0
Битовое поле определено как структура:
typedef struct {
unsigned char bit0 :1, bit1 :1, bit2 :1, bit3 :1, bit4 :1, bit5 :1,
bit6 :1, bit7 :1;
} bit_field;
Я не знаюгде & порт определяется.
Может кто-нибудь объяснить, пожалуйста, как читается функция и как она работает, пожалуйста?Я не очень хорошо разбираюсь в указателях, и этот пример, в частности, очень запутан с «*» спереди и в конце и «&» с портом.
Спасибо