関数:
#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 がどこに定義されているかわかりません。
関数がどのように読み取られ、どのように機能するかを誰かが説明してもらえますか? 私はポインターが苦手で、特にこの例は、先頭と末尾の "*" とポートの "&" が非常に紛らわしいです。
ありがとうございました