Arduino;动态获取数组元素;数组的类型为struct,其中包含不同大小的字符串



在Arduino C++中,我有以下结构:

struct acceptedCommand {
String Command;
int   switchcase;
};

然后我初始化上面结构的数组,如下所示:

const acceptedCommand acceptedCommands[] = { 
{"set-amountofcells", 1}, 
{"set-cell-min-voltage", 2},
{"set-cell-max-voltage", 7}
...
};

所需结果:我想动态返回此数组中的元素数。

我已经尝试过的:我无法使用SizeOf函数,因为它只返回数组使用的字节总数。

我也无法将SizeOf返回的值除以结构的大小,因为数组中每个元素的大小都不同(因为字符串的长度不同(。

那么,如何动态获取acceptedCommands[]数组中的元素数量呢?

sizeof(acceptedCommands)/sizeof(acceptedCommand)应该提供数组中结构的数量,从而提供命令的数量。

您可能认为您的结构是可变大小的,但事实并非如此,即使其char数组的长度不同,sizeofString在编译时也是已知的,因为String将是一个可能包含指向char数组的指针的对象,而sizeof指针在编译时是已知的。

您需要使用向量而不是数组。对Arduino使用标准C++。然后你就可以在Arduino中使用stl向量了。

相关内容

  • 没有找到相关文章

最新更新