在结构中创建未知数据类型数组
Creating a unknown data type array into a structure?
我有一个用值填充类结构的结构:
MyType structMy[] =
{
{ START, INTEGER_TYPE, 3, (void *)&classStart->statusStart.set },
{ STABLE, CHAR_TYPE, 5, (void *)&classtStable->statusStable.set },
{ STOP, DOUBLE_TYPE, 1, (void *)&classStop->statusStop.set }
}
但是为了测试和验证,我想在结构中添加测试用例:一些值依赖于每行定义的数据类型和值的数量。
但是由于结构设置和1值或数组,我认为我需要一个(void*)。但是编译器不喜欢它。如何将数组写入数据类型可以更改的结构中?
MyType structMy[] =
{
{ START, INTEGER_TYPE, 3, (void*){0, 1, 2} },
{ STABLE, CHAR_TYPE, 5, (void*){'A', 'B', 'C', 'D', 'E'} },
{ STOP, DOUBLE_TYPE, 1, (void*){2.4} }
}
编译器需要指针在那里,所以尝试在其他地方声明数据:
int is[] = {0, 1, 2};
char cs[] = {'A', 'B', 'C', 'D', 'E'};
double ds[] = {2.4};
MyType structMy[] =
{
{START, INTEGER_TYPE, 3, (void*)is },
{STABLE, CHAR_TYPE, 5, (void*)cs },
{STOP, DOUBLE_TYPE, 1, (void*)ds }
}
通过告诉编译器期望的类型,可以这样做:
MyType structMy[] =
{
{ START, INTEGER_TYPE, 3, (void*)(int[]){0, 1, 2} },
{ STABLE, CHAR_TYPE, 5, (void*)(char[]){'A', 'B', 'C', 'D', 'E'} },
{ STOP, DOUBLE_TYPE, 1, (void*)(double[]){2.4} }
}
相关文章:
- C++默认情况下,指针类型数组的元素是否保证初始化为 nullptr?
- 类型数组?
- 如何在使用 make_unique<T[]>() 制作的模板类型数组上使用 std::fill?
- 将基本类型数组中的内存重新用于不同(但仍然是基本)类型的数组合法吗
- 错误的值是使用c++从CSV文件数据写入数组
- 在C++中返回基元类型数组(Java比较)
- c++用输入数据创建数组
- 如何返回 QVariant 类型数组
- 如何在本机 c++ jni 中实现 java 类型数组
- 模板类型数组的模板类型数组
- 如何将数据从数组复制到C++特征矩阵或向量
- 如何确定未知类型数组的索引是否为空
- 复杂类型数组的静态初始化
- 如何在C 中的派生类中分配数据成员数组
- 访问基类型数组成员(Int-to-type习惯用法)
- 如何将 char 类型数组传递给函数并将第一个字符数组复制到第二个图表数组并使用 c++ 进行比较
- 如何在 c++ 中从对象数组中获取数据成员数组
- 如何在C 中制作结构类型数组
- c++我需要将文件中的数据读取到多维数组中,然后用一种数据类型对数组进行排序.怎样
- 在结构中创建未知数据类型数组