我正在尝试在嵌入式C中创建一个自动化模板,该模板具有固定的平面文本格式,并插入需要从数组中选取的可变参数。因此,我将在出现参数的位置放置固定器。一些参数是字符串,而其他参数是整数值或浮点值。
我已插入扩展的ASCII值作为占位符,然后减去0x80以根据占位符的出现点提取索引。但是我还没有办法指向不同的源表。
答案 0 :(得分:2)
按定义,数组是相似数据类型的集合。因此,没有直接的方法可以拥有指向不同数据类型的指针数组。
其中一种实现方法是通过type casting
具有所需数据类型的数组元素,同时访问/取消引用元素。
要在访问元素时知道正确的type
,您需要在定义元素时存储类型。
可能的解决方案如下所示:
typedef struct
{
int type; //0 - enumDay, 1 - Struct C etc
void* data;
}mydata_t;
mydata_t myarray[10];
分配:
myarray[0].type = 2; //Lets assume 2 for string
myarray[0].data = "My String";
使用:
if( myarray[0].type == 2) // is it a string?
{
printf("This is the string :%s \n",(char*)myarray[0].Data);
}