ich habe ein C Problem: in dem file "main.c" definiere ich die Variabe "int counter;" und "float test2;" um die Variablen auch in anderen Files zu nutzen habe ich main.h mit "extern int counter;" und "extern float test2;" definiert. im File in dem ich die Variablen nutzt, bzw ausgeben will habe ich nun main.h mit eingebunden. Jetzt ist nun mein Problem und ich sehe einfach meinen Fehler nicht: counter ist bekannt test1 aber nicht. Was mach ich falsch?
ich suche natürlich test2 und finde es nicht. habe daneben getippt und ist mir bei der Kontrolle wohl nicht aufgefallen. Fehler passieren. Sorry, hoffe das euch das nicht abschreckt.
Noch einmal und es schreckt uns ab! Verzichte bitte nach dem Schreiben eines Beitrages auf das Betätigen des "Zurück"-Knopfes Deines Browsers.
Genau deshalb wird ja immer empfohlen, ganz genau den Code, den man getestet hat, als Anhang zu senden und nichts anderes !!! Bzw. wenn man den Code verkürzt hat, den dann natürlich nochmals zu testen, ob der Fehler wirklich noch drin ist. Peter
das Probelm an der Sache ist: ich nutzt FreeRTos und da den LPC Rowley Webserver Port. Hier kann ich nicht den gesammten Code posten, es wäre einfach zu umfangreich. Deshalb habe ich mein Problem kurz beschreiben in der Hoffnung das er verständlich ist. Also ist meine überlegung nicht Grundsätzlich falsch das ich so alle Variablen auch in anderen Files bekannt machen kann?
Die Vorgehensweise ist vollkommen korrekt. In einer .C-Datei die Variable definieren, in einer .H-Datei die Variable "extern" deklarieren, die Headerdatei in alle Dateien einbinden, in denen auf die Variable zugegriffen werden soll. Genau so macht man das.
ich glaube ich seh grade den Wald voller Bäumen nicht. ich werde es morgen weiter versuchen jetzt finde ich den Fehler einfach nicht. Danke für alle Tips vll wennes nicht geht werde ich mich morgen noch mal melden. Das soll keine Drohung sein ;-)
Ein Hinweis noch: Die Variablendefinition in der .C-Datei muss außerhalb jeder Funktion erfolgen. Variablen innerhalb einer Funktion sind "automatische" Variablen, die werden auf dem Stack angelegt und sind nur während der Laufzeit der Funktion gültig; der Linker "sieht" diese Variablen nicht.
die Definition erfolgt ausserhalb der Funktionen das kann also nicht der Fehler sein.
`test2' undeclared (first use in this function) Also scheint das mit main.h noch nicht hin zu hauen. jedoch wird auf die selbe Art und Weise auch schon die Variable counter übergeben. und bei der wird kein Fehler ausgegeben. ich werde einfach für test2 eine eigene *.h datei definieren und mal sehen wie der compiler reagiert.
wenn ich das mache wird es ohne Fehler compiliert aber der zugewiesene Wert wird nicht übergeben. na ja ich geh jetzt erstmal ins Bett und überschlaff das Problem euch allen auch eine gute Nacht
ok ich weiß nicht warum, seit gestern abend als es nciht ging habe ich nichts geändert aber nun gehts. ggf hat der Compller heute die o-files neu erstellt was anderes kann ch mir nciht vorstellen. Jedoch habe ich gestern mehrmal alle o-files gelöscht Danke an alle Für eure Hilfe
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.