You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino中如何创建包含多字段的可索引记录数组?

Arduino中创建多字段可索引记录数组的方法

Arduino基于C++,完全支持你需要的多字段记录数组,核心是用struct定义记录模板,再创建该类型的数组即可。以下是具体实现步骤:

1. 定义结构体类型

先通过struct定义单条记录的结构,包含你需要的所有字段:

// 定义员工记录的结构体类型
struct EmployeeRecord {
  int employee_number;
  char employee_first_name[20]; // 用char数组存储字符串,指定足够长度
  char employee_last_name[20];
  int employee_age;
  int spouse_age;
};

2. 创建结构体数组

基于上面的结构体类型,声明并初始化一个可索引的数组:

// 创建包含3条员工记录的数组
EmployeeRecord employees[] = {
  {1001, "John", "Doe", 35, 33},
  {1002, "Jane", "Smith", 28, 29},
  {1003, "Bob", "Johnson", 42, 40}
};

// 用sizeof计算数组的记录条数
int employeeCount = sizeof(employees) / sizeof(employees[0]);

3. 访问数组中的记录

通过数组索引(从0开始)就能访问任意一条记录的字段,支持读取和修改:

void setup() {
  Serial.begin(9600);
  
  // 读取并打印第1条记录(索引0)的姓名
  Serial.print("First Employee: ");
  Serial.print(employees[0].employee_first_name);
  Serial.println(employees[0].employee_last_name);
  
  // 修改第2条记录的年龄
  employees[1].employee_age = 29;
  Serial.print("Updated Age of Second Employee: ");
  Serial.println(employees[1].employee_age);
  
  // 遍历所有记录并打印
  Serial.println("\nAll Employees:");
  for (int i = 0; i < employeeCount; i++) {
    Serial.print("ID: ");
    Serial.print(employees[i].employee_number);
    Serial.print(", Name: ");
    Serial.print(employees[i].employee_first_name);
    Serial.print(" ");
    Serial.print(employees[i].employee_last_name);
    Serial.print(", Age: ");
    Serial.print(employees[i].employee_age);
    Serial.print(", Spouse Age: ");
    Serial.println(employees[i].spouse_age);
  }
}

void loop() {
  // 无需循环操作
}

补充说明

  • 字符串字段用char[]是因为Arduino中默认的String类会占用更多内存,对于资源有限的单片机,char数组更高效。
  • 结构体数组完全满足你的需求,官方参考文档目前侧重基础数组内容,你确实可以建议将这类实用的结构体数组用法补充到Arduino结构体参考文档中。

内容的提问来源于stack exchange,提问作者mr coffeeee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 19:22:03