我想知道我是否可以创建两个具有相同名称但具有不同大小和ID的寄存器。 示例我需要创建一个包含40个元素的MenuRegister,另一个包含10个元素; 我正在使用两个寄存器都相同的例程。到现在为止,我需要重新创建我的例程,因为每个寄存器都有不同的名称。我可以创建两个具有相同名称但ID不同的寄存器吗?
示例
typedef union
{
unsigned int Value;
unsigned char bytes[2];
}NonStaticParameters;
//////////WaterPellet///////////////////
extern volatile NonStaticParameters MenuRegister[40];
extern volatile NonStaticParameters ExtraMenuRegister[10];
我重新声明了错误数组的维数
这是一个常规示例
void TestRoutine()
{
MenuRegister[1].Value={User has set its Value}
....
....
..
..
}
答案 0 :(得分:1)
正如评论中已经建议的那样,您可能想要这样做:
extern volatile NonStaticParameters MenuRegister_1[40]; // different names here
extern volatile NonStaticParameters MenuRegister_2[10];
void TestRoutine(NonStaticParameters menu[], int size) // TestRoutine with parameter and size
// the size parameter is useful so you know
// the number of elements in the register
{
menu[1].Value={User has set its Value}
....
....
}
TestRoutine(MenuRegister_1, sizeof(MenuRegister_1) / sizeof(MenuRegister_1[0]));
...
TestRoutine(MenuRegister_2, sizeof(MenuRegister_1) / sizeof(MenuRegister_1[0]));