在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向量了。