抱歉,我可能会重复之前提出的问题,但我没有得到我正在寻找的答案。所以这就是我想要创建的:
typedef struct flags
{
unsigned char flag0:1;
unsigned char flag1:1;
unsigned char flag2:1;
unsigned char flag3:1;
unsigned char flag4:1;
unsigned char flag5:1;
unsigned char flag6:1;
unsigned char flag7:1;
}BFLAG;
typedef union
{
unsigned char byte;
BFLAG bitflg;
}GENFLAG;
GENFLAG status_flag, hmi_flag;
Run Code Online (Sandbox Code Playgroud)
然后我想创建宏来寻址特定位,如下所示:
#define EDIT_PARAM status_flag.bitflg.flag0 // l: Locked for editing, 0:Editable
#define HIDE_PARAM status_flag.bitflg.flag1 // 1: parameter is hidden, 0:visible
#define LOCK_PARAM hmi_flag.bitflg.flag0 // 1: Password Unlock, 0: locked 1.
Run Code Online (Sandbox Code Playgroud)
ETC。
因此,我希望能够在每个实例中使用 ## 运算符将“status_flag.bitflg.flag”等公共字符串与 0、1、2、3 等连接起来,创建一个新的宏。但我想使用宏,例如 EDIT_INDEX 代表 0,HIDE_INDEX …