2015-11-08 182 views
0

我有一個問題,我無法解決我的代碼。將值分配給結構

步驟:

  1. 創建年,月,日和其他信息的結構。
  2. 通過串行初始化這些值。

但我得到以下結果 - 「數據」在此範圍內未聲明 - 我不知道是什麼問題,我相信這是一個語法問題。

對不起,我正在學習與結構工作。

我很感謝有人能幫助我。我正在使用Arduino。 由於

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(); 
    } 
    } 
} 

回答

0

datas data[10];是局部變量,並且不能從任何地方除外if塊進行訪問。在void setup_clock(){之後的其他地方定義結構和data

+0

嗨,MileCAT。如果我想在另一個函數中使用data [0] .energy?例如: :data [0] .energy = 10; 我該怎麼做?謝謝! – user14660

+0

正確傳遞數據。可以通過將'data'全局或傳遞'data'作爲需要它的函數的參數來完成。 – MikeCAT

+0

Okk。我會盡力。非常感謝! – user14660