我有两个不同的结构和两个常量查找表,如下所示
typedef const struct
{
unsigned int num;
unsigned char name[100];
unsigned int value1;
unsigned int value2;
unsigned int value3;
}st_Table1;
typedef const struct
{
unsigned int num;
unsigned char name[100];
}st_Table2;
st_Table1 stTable1[] =
{
{ 1, "Name1", 12, 13, 14 },
{ 2, "Name2", 22, 23, 24 },
{ 3, "Name3", 32, 33, 34 },
{ 4, "Name4", 42, 43, 44 }
};
st_Table2 stTable2[] =
{ 1, "India1" },
{ 2, "India2" },
{ 3, "India3" }
};
是否可以有一个指针可以同时指向查找表stTable1
和stTable2
?
当我必须决定选择两个表中的任何一个时,我们可以分配表的地址(其中之一)。
但之后我想在其余代码中使用单个指针。
请回复任何逻辑...提示...线索
阿尔温德
最佳答案
那么你可以创建一个结构
typedef struct _tableChoice
{
st_Table1* table1;
st_Table2* table2;
} tableChoice_t,*p_tableChoice_t;
然后您可以传递 p_tableChoice_t
类型的参数,直到您需要专门访问其中一个表。如果您需要在运行时决定使用哪个指针,则需要在决策点提供两个可用的指针。
关于c - 指向c中两个不同的常量结构表(查找表)的单指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470528/