5

次のコードがあります。それは私のIDEによって生成されたもので、理解しようとしています。

#define TRGMR (*(volatile union un_trgmr *)0xF0250).trgmr

ここで、データシートによると、タイマー マネージャーは 0xF0250 の場所にあります。しかし、私が理解できないのは構文です。

union un_trgmr {
    unsigned char trgmr;
    __BITS8 BIT;
};

ポインタについては知っています。しかし、私は本当に何が行われているのか理解できません。誰かが私を助けてくれませんか?ちなみに、BITS8 は次のようにビットフィールドを持つ別の構造体です。

typedef struct {
    unsigned char no0 :1;
    unsigned char no1 :1;
    unsigned char no2 :1;
    unsigned char no3 :1;
    unsigned char no4 :1;
    unsigned char no5 :1;
    unsigned char no6 :1;
    unsigned char no7 :1;
} __BITS8;
4

1 に答える 1