Struktur von Arrays

OP #2109446
Lesenswert?

Freitag Abend und ich hock vor'm Rechner
n'Abend an alle

Die angehängte Datei ist vorerst zweitraning

Die aufgeschlagene Buchseite
http://openbook.galileocomputing.de/c_von_a_bis_z/015_c_strukturen_006.htm#mj558e0e4fc0892fc3f91cd810f7c07860
1
void Eingabe(int nr, struct adres neu[])

funktioniert im Visual Studio

möchte ich auf meinen Atmega 16 portierne
AVR Studio 4.18

meine Codezeile die ich eben nach Buch angepasst habe
1
void verstellen(int nr, struct wecken neu[] )
in Zeile 83 des Dateianhangs

und hier erhalte ich folgende Fehlermeldung

../A8_LCD_T2.c:83: error: array type has incomplete element type

Danke schon mal
Angehängte Dateien:
#2109457
Lesenswert?

Reihenfolge:

Geh dein File von oben nach unten durch, so wie es auch der Compiler 
macht.

1
Geplänken, Geplänkel, Geplänkel
2

3
void verstellen(int nr, struct wecken neu[]);

Hier verwendest du eine Struktur namesns wecken. Aber wo ist sie 
definiert?
1
int main()
2
{
3

4
  Geplänkel, Geplänkel, Geplänkel
5

6

7
// Meine erste Stuctur soll die Weckzeiten der gesamten Woche aufnehmen aufnehmen 
8
  struct wecken
9
  {  
10
    uint8_t tag;
11
    uint8_t stunde;                      
12
    uint8_t minute;                        
13
  }morgen[7];

Aha. Hier ist sie definiert. Aber da ist es zu spät. Du versuchst sie 
schon weiter oben zu verwenden.

Wenn man den Code von oben nach unten durchgeht, muss alles 
definiert/deklariert werden, ehe man es verwenden kann. Genau so macht 
es auch der Compiler. Der sucht sich nicht aus dem Code heraus, wie das 
alles zusammenhängt, sondern er liest den Text von oben nach unten.
OP #2109483
Lesenswert?

Danke für den Tip, ist wenn man draufgestoßen wird vollkommen klar.

jetzt
1
char aktuelleUhrzeit( uint8_t sekunde, uint8_t minute, uint8_t stunde);
2
char weckzeit(uint8_t minute, uint8_t stunde, uint8_t tag);
3

4
// Meine erste Stuctur soll die Weckzeiten der gesamten Woche aufnehmen aufnehmen 
5
  struct wecken
6
  {  
7
    uint8_t tag;
8
    uint8_t stunde;                      
9
    uint8_t minute;                        
10
  }morgen[7];
11
// A C H T U N G   auch hier kann ein "einZuVielFehler" auftretten Index beginnt bei 0 ... 6
12

13
void verstellen(int nr, struct wecken neu[]);

nachdem die "struct" vor der main deklariert wurde ist sie doch global??
AH!
Das könnte der Grund sein warum Ihr Proficoder die Funktionen vor der 
main erzeugt.
Im Gegensatz zum Schul C Bekannt machen  und nach der main erzeugen.

Jetzt brennt mir aber eine weiter Frage auf den Lippen.
1
void verstellen(int nr, struct wecken neu[]);
ist die "int nr" in der
1
#include <string.h>
 irgenwie festgelegt ?
Diese Variable läßt der COmpiler einfach passieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren