具有不同 ID 的结构中的相同 ArrayName
Same ArrayName in struct with different ID
我想知道我是否可以创建两个名称相同但大小和 ID 不同的寄存器。
示例我需要创建一个包含 40 个元素的 MenuRegister 和另一个包含 10 个元素的 MenuRegister;
我正在使用两个寄存器相同的例程。直到现在我需要重新创建我的例程,因为每个寄存器都有不同的名称。我可以创建两个名称相同但 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}
....
....
..
..
}
正如评论中已经建议的那样,您可能想要这个:
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]));
我想知道我是否可以创建两个名称相同但大小和 ID 不同的寄存器。 示例我需要创建一个包含 40 个元素的 MenuRegister 和另一个包含 10 个元素的 MenuRegister; 我正在使用两个寄存器相同的例程。直到现在我需要重新创建我的例程,因为每个寄存器都有不同的名称。我可以创建两个名称相同但 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}
....
....
..
..
}
正如评论中已经建议的那样,您可能想要这个:
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]));