【发布时间】:2020-02-15 06:55:25
【问题描述】:
我不知道我要问什么类型的问题。但我只需要建议或想法就能找到方法。
我有很多结构和大量成员,如下所示
typedef struct _Bank0
{
unsigned char main_control_char;
unsigned short input_port_short;
:
:
}Pack Bank0;
typedef struct _Bank1
{
unsigned char ddr3_control_char;
unsigned char ddl_control_char;
:
:
}Pack Bank1;
我想为这个寄存器组写一个测试函数,如果我给出组号(即结构名称)它应该显示该组中的所有寄存器。
我只需要避免重复编程测试寄存器,我正在尝试以下方式
select register bank= Bank1(* user will enter this value) //
//now i want to show all register name in bank 1 for example//
ddr3_control_char
ddl_control_char
之后我想将数据发送到选定的寄存器。 任何人都可以建议我任何想法。我只是不想再次复制粘贴寄存器名称,因为我的代码长度会更长,以避免它我想要建议。
【问题讨论】:
-
请仅选择 C 或 C++ 之一。它们是不同的语言,根据实际使用的语言,答案可能会有所不同。
-
有一种方法可以使用预处理器魔法来做到这一点。但这只有在那些长长的成员名单定期变化时才值得付出努力。如果没有,那么您最好重复代码,并且可以通过在 IDE 编辑器中复制粘贴来重复代码来妥协。所以,让我知道您是否预计必须反复更改结构。如果我确信我可以挖掘出我的 prepro 魔杖......
-
@kaylum 我想用 c++ 做
-
@Yunnosch 是的,某些银行的某些寄存器会定期更改,但并非所有寄存器
-
@GaneshKhose 你坚持在 C++ 中使用 printf 吗?