将值分配给结构

Sssigning values to structs

我有一个无法在我的代码中解决的问题。

步骤:

  1. 创建一个包含年、月、日和其他信息的结构。
  2. 通过串行初始化这些值。

但我得到以下结果 - 'data' 未在此范围内声明 - 不知道是什么问题,我相信是语法问题。

抱歉,我正在学习使用结构。

如果有人能帮助我,我将不胜感激。我正在使用阿杜诺。 谢谢

void setup_clock(){
  UtlTime = 0;
  second= 0;
  minut = 0;
  hour = 0;
  int turn = 1;

  if (turn == 1){
    int i = 0;
    typedef struct {
    int year;
    int month;
    int day;
    float energy;
    } datas;
    datas data[10];
    turn++;
  }
  Serial.println("Minut: ");
  while(minut== 0){
    if (Serial.available() > 0){
      minut= Serial.parseInt();
    }
  }
  Serial.println("Hour: ");
  while(hour == 0){
    if (Serial.available() > 0){
      hour = Serial.parseInt();
    }
  }
  Serial.println("Month: ");
  while(data[0].month == 0){
    if (Serial.available() > 0){
        data[0].month = Serial.parseInt();
    }
  }
  Serial.println("Year: ");
  while(data[0].year == 0){
    if (Serial.available() > 0){
      data[0].year = Serial.parseInt();
    }
  }
}

datas data[10]; 是局部变量,不能从除 if 块之外的任何地方访问。在别处定义结构和 data,例如,就在 void setup_clock(){.

之后