Folgender Fehler bringt mit LINT und ich finde dein Fehler einfach nicht: Prohibited Impliciti Conversion: Signed versus Unsigned bei folgender Zeile: Extern Array[0] = { { TASTATUR, TASTEN ,aSpeicherzahl } }; Tastatur und Tasten sind Define sSpeicherzahlt ist ein Array.
gerd43 wrote: > Folgender Fehler bringt mit LINT und ich finde dein Fehler einfach > nicht: > > Prohibited Impliciti Conversion: Signed versus Unsigned > > bei folgender Zeile: > > Extern Array[0] = > { > { TASTATUR, TASTEN ,aSpeicherzahl } > }; Es ist kein Datentyp angegeben. Daher treten Standardannahmen in Kraft die besagen, dass Array vom Typ int ist (und ich vermute mal, du hast irgendwo anders eine andere Definition für Array, wo das ein unsigned int ist. Die andere Möglichkeit wäre, das irgendeines von TASTATUR, TASTEN oder aSpeicherzahl ein unsigned Datentyp ist) Die Angabe einer 0-Größe für das Array ist wohl ziemlich sinnfrei. Ausserdem stimmt sie nicht mit der Anzahl der Initialisierungen überein Dir ist hoffentlich auch klar, dass durch die Angabe einer Initialisierung das 'extern' keine Wirkung mehr hat. Das ist eine Definition und keine Deklaration mehr. Die zusätzlichen {} - Klammern in deiner Initialisierung verleiten mich allerdings zu der Annahme, dass du wieder mal nicht den Code gepostet hast, so wie er in deinem Programm steht, sondern einen anderen. Sieht zwar ähnlich aus, aber ist dann doch was ganz anderes.
Besten dank für die Antwort und Klasse wie hier einem geholfen wird. SHerleitung Array[1] = { { TASTATUR, TASTEN ,aSpeicherzahl }, { TASTATUR1, TASTEN1 ,aSpeicherzahl1 } }; es sieht so aus: SHerleitung Array[1] typedef struct { Uint X; Uint Y; Uint *Z; } SHerleitung;
gerd43 wrote: > Besten dank für die Antwort und Klasse wie hier einem geholfen wird. > > SHerleitung Array[1] = > { > > { TASTATUR, TASTEN ,aSpeicherzahl }, > { TASTATUR1, TASTEN1 ,aSpeicherzahl1 } > > }; > Hmm. In mir keimt ein Verdacht. Kann es sein, dass du die Angabe der Dimensionierung bei einem Array noch nicht richtig verstanden hast? Dort wird angegeben, wieviele Elemente das Array umfassen soll und nicht welches der höchste Index ist. Ein Array SHerleitung Array[1] besteht aus einem Element, welches den Index 0 trägt. Obiges kann also so nicht stimmen, da du 2 Initialisierungen hast, dein Array aber nur 1 Element groß ist. Lass doch die Anzahl der benötigten Array Elemente den Compiler selbst ausrechnen. Der braucht nur die Initialisierungen abzuzählen und weiß dann, wie gross das Array sein muss: SHerleitung Array[] = { { TASTATUR, TASTEN ,aSpeicherzahl }, { TASTATUR1, TASTEN1 ,aSpeicherzahl1 } }; Das aber nur nebenbei. > typedef struct > { > Uint X; > Uint Y; > Uint *Z; > } SHerleitung; OK. Also alles unsigned. Welches sind die Datentypen für TASTATUR, TASTATUR1, TASTEN, TASTEN1 aSpeicherzahl und aSpeicherzahl1?
TASTATUR und 1 = (unsigned short int) TASTEN und 1 = Define dem hinterlegt ist 0u
Wenn solche Fehler kommen, ist es wichtig genau den Datentyp aller Variablen zu überprüfen. Dazu musst Du aber noch mehr Infos liefern: Datentyp von aSpeicherzahl, aSpeicherzahl1 Datentyp von TASTATUR etc. dh. als was sind die defined ? mit dem define ist das ein bißchen tricksig, am besten hängt man an den Wert sowas wie U für unsigned int an. PS: hmm der Herr Buchegger war schneller ;)
Hmm abgesehen davon, dass es manchmal "Uint" (ist das irgendwo als unsigned short int definiert?) und manchmal "unsigned short int" heisst, wüsste ich jetzt nicht wo der Fehler herkommen sollte. Gibt es vielleicht lokale Variablen gleichen Namens ? Array ist ja auch kein sehr aussagekräftiger Name ;)
gerd43 wrote: > TASTATUR und 1 = (unsigned short int) > TASTEN und 1 = Define dem hinterlegt ist 0u Und das ganze jetzt bitte nochmal im deutschen Satz. Oder noch besser: im originalen Code. Irgendwo hast du einen Mismatch zwischen signed und unsigned. Dem musst du nachgehen. Aber mit den Ausschnitten die wir hier zu sehen kriegen, kann man das von hier aus nicht beurteilen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.