1

MCU ヘッダー ファイルで定義された構造体があります。

typedef struct tagANSBBITS {
  unsigned ANSB0:1;
  unsigned ANSB1:1;
  unsigned ANSB2:1;
  unsigned ANSB3:1;
  unsigned ANSB4:1;
  unsigned :7;
  unsigned ANSB12:1;
  unsigned ANSB13:1;
  unsigned ANSB14:1;
  unsigned ANSB15:1;
} ANSBBITS;

ハードウェアに実装されているため、一部のビットのみが定義されています。問題は、このようなマクロを自分で作成したことです

#define  pinMode(pin) pin(_ANS_F)
#define _ANS_F(alpha,bit) (ANS ## alpha ## bits.ANS ## alpha ## bit)

そして、このように使用されます

pinMode(RED_LED) = 0;

対応するANSBxが構造で定義されていない場合、明らかに失敗します。マクロを使用する前に ANSx の存在をテストできますか? または、これで問題ないことを gcc に納得させますか?

前もって感謝します、

4

1 に答える 1