【发布时间】:2013-01-27 09:02:27
【问题描述】:
当我将单个元素初始化为 void 结构时,它可以正常工作:
void* CMD_ARRAY[] =
{
{"+++\r"},
{"+++\r"},
{"+++\r"},
};
但是,当我尝试向结构中添加更多元素时,即:
void* CMD_ARRAY[] =
{
{"+++\r" , 4, 1300},
{"+++\r" , 4, 1300},
{"+++\r" , 4, 1300},
};
这会导致错误:
预期为“}”
第一个示例中的单个元素与结构的结构(也被视为元素)之间有什么区别?
如何实现这种混合类型的 void 结构的初始化?
更新: 所以我知道编译器不知道如何处理相同元素中的不同类型。有没有办法动态定义这些类型(即使用强制转换)而不实际定义此定义之外的结构(即使用结构数组)?
【问题讨论】:
-
“第一个例子中的单个元素和结构的结构有什么区别...” 区别在于你没有告诉编译器它们的类型是什么。它不能只是猜测。
-
我知道还有其他方法(即定义结构),但如果我能以这种方式实现它,它将解决我的问题。
-
@user2015194 你的问题到底是什么?我想说不管是什么,都有比这种方法更好的方法来解决它。
标签: c struct void-pointers