arrays - 阿杜诺;动态获取数组元素;数组是 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)
应该给你数组中结构的数量,从而得到命令的数量。
您可能认为您的结构是可变大小的,但事实并非如此,String
即使其 char 数组的长度不同,sizeof 在编译时也是已知的,因为String
将是一个对象,其中可能包含指向 char 数组的指针,并且 sizeof 指针是已知的在编译时。
推荐阅读
- autodesk-forge - 是否有必要卸载加载的模型,或者我应该从主 forgeViewer 标签中删除所有标签?
- elasticsearch - 响应中未保留的 agg 名称的排序
- arrays - 从 Swiftui 中的变量获取对象的特定属性
- visual-studio - 在 Visual Code Studio 中哪里可以找到 Flutter 布局检查器?
- javascript - 如何根据 Vue JS 中 for 循环中的布尔值显示图像?
- python - “自动”包的 pip 安装错误
- winapi - Winapi 如何将矩形绘制到特定的窗口句柄?
- sql - 在 CASE 语句中聚合列
- node.js - Github Actions 组织节点部署到 github 页面
- catalyst - 无论如何,我可以获得 Cat4k 交换机的所有 cli 命令的列表吗?