我在 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;
只定义了一些位,因为它们是在 hw 中实现的。问题是我给自己做了一个这样的宏
#define pinMode(pin) pin(_ANS_F)
#define _ANS_F(alpha,bit) (ANS ## alpha ## bits.ANS ## alpha ## bit)
并像这样使用
pinMode(RED_LED) = 0;
当相应的 ANSBx 未在结构中定义时,这显然会失败。我可以在使用宏之前以某种方式测试 ANSx 的存在吗?或者说服 gcc 这没问题?
提前致谢,