我正在尝试构建一种基本的数据库(或更确切地说是数据存储)结构,以存储不同项目到特定测试用例的映射,这些映射要在Arduino上运行-因此,存储空间效率是一个主要问题。
所以我写了几个typedef和structs,头文件就可以编译了。但是,一旦我想创建结构实例来实际存储数据,就会遇到几个错误,这些错误似乎都与第一个错误非常相似:
error: cannot convert 'const uint8_t (*)[7] {aka const unsigned char (*)[7]}' to 'const uint8_t (*)[] {aka const unsigned char (*)[]}' in initialization
要重现此错误,仅以下4行是相关的:
-在我的头文件中 (请注意,注释表明,我期望这行是什么,而不是它是什么;))
typedef const uint8_t Testcase[]; //array of const uint8_t
typedef Testcase *Sequence[]; //array of pointer to Testcase (aka array of pointer to array of const uint8_t)
-并在我的代码文件中:
const Testcase ic_1tc_1 = {0x00, 0x10, 0x01, 0x61, 0x00, 0x30, 0x07};
Sequence s1 = {&ic_1tc_1};
该错误发生在我的代码文件的第二行中,我希望创建一个带有指向测试用例的单个指针元素的数组。
我发现的所有类似问题均与“ const”关键字有关,我已经对它进行了整理(我认为),因此它们对我没有帮助。
我理解编译器告诉我的错误 “我无法将长度为7的数组转换为任意长度的数组” 这对我来说毫无意义。
有人可以向我解释一下吗?