_Faby_ Geschrieben 14. Oktober 2010 Geschrieben 14. Oktober 2010 Hallo an alle ich versteh nicht warum mein Define ned funktioniert... #define VORNAME "[Vorname]" #define NACHNAME "[Nachname]" #define ALTER "[Alter]" was mach ich falsch??? ich will dass z.B. VORNAME gleich [Vorname] ist... wäre für antworten sehr dankbar... Zitieren
Klotzkopp Geschrieben 14. Oktober 2010 Geschrieben 14. Oktober 2010 was mach ich falsch??? Keine Ahnung. Du zeigst weder, wie du die Defines verwendest, noch welches Fehlverhalten auftrittt. Geht's etwas genauer als "funktioniert nicht"? ich will dass z.B. VORNAME gleich [Vorname] ist... Dir ist klar, dass Defines reine Textersetzungen sind? Zitieren
_Faby_ Geschrieben 14. Oktober 2010 Autor Geschrieben 14. Oktober 2010 ja ist mir klar also ich mein programm funktioniert einwandfrei... ich setzte am anfang des codes die defines... aber sie werden nicht angewendet... also wenn ich im text die variable VORNAME anschau heißt es symbol VORNAME not found. Zitieren
Klotzkopp Geschrieben 14. Oktober 2010 Geschrieben 14. Oktober 2010 ich setzte am anfang des codes die defines... aber sie werden nicht angewendet...Zeig doch bitte den Code, und erkläre, was er tut, und was er deiner Meinung nach tun sollte. Ansonsten können wir hier sehr lange Rätsel raten. also wenn ich im text die variable VORNAME anschau heißt es symbol VORNAME not found.Was ist denn "im Text"? Es kann in deinem Programm keine Variable namens VORNAME geben, weil durch das Define jedes VORNAME im Programm durch "[Vorname]" ersetzt wird. Defines sind keine Variablen. Zitieren
lilith2k3 Geschrieben 14. Oktober 2010 Geschrieben 14. Oktober 2010 ja ist mir klar Was ich so einmal zu bezweifeln wage ... also ich mein programm funktioniert einwandfrei Tut es das? ich setzte am anfang des codes die defines ja. aber sie werden nicht angewendet Wenn Du Deinen Quelltext kompilierst, dann schon. also wenn ich im text die variable VORNAME anschau heißt es symbol VORNAME not found. äh? An welcher Stelle definierst Du denn eine Variable? Ein Define veranlasst den Präprozessor dazu, den Text vor der Übersetzung zu durchlaufen und den angegebenen durch den Definierten zu ersetzen: #define KTU "Kriminatechnische Untersuchung" Wenn dann irgendwo KTU steht, kommt dann "Kriminatechnische Untersuchung" an die Stelle. Mehr nicht. Zitieren
_Faby_ Geschrieben 15. Oktober 2010 Autor Geschrieben 15. Oktober 2010 ach echt und meinst ich weiß des ned... ich werd hier nicht den ganzen Code posten weil der über 3 Seiten geht... ich habs genau so gemacht wie du ilith2k3 ich hab geschrieben #define VORNAME "[Vorname]" und mir ist klar dass dann im Code alle VORNAME durch [Vorname] ersetzt werden... Wenn ich das Programm Debugge kann ich im "Watch" fenster (so heißt das in Visual Studio) die gesetzten defines Kontrollieren ob sie auch wirklich gesetzt wurden... und da liegt das problem... wurden sie nämlich nicht nicht!!! Eigentlich wollt ich nur wissen ob ich die richtige schreibweise verwendet hab aber da ich ja jetzt gesehen hab wie dus gemacht hast glaub ich stimmt soweit alles... ich werd des problem schon irg wie finden lg und schönen Tag^^ _Faby_ Zitieren
_Faby_ Geschrieben 15. Oktober 2010 Autor Geschrieben 15. Oktober 2010 Okay hat sich erledigt danke für die Antworten Zitieren
Klotzkopp Geschrieben 15. Oktober 2010 Geschrieben 15. Oktober 2010 Wenn ich das Programm Debugge kann ich im "Watch" fenster (so heißt das in Visual Studio) die gesetzten defines Kontrollieren ob sie auch wirklich gesetzt wurden... und da liegt das problem... wurden sie nämlich nicht nicht!!!Beim Debuggen geht das natürlich nicht. Wenn der Compiler dein Programm zum Übersetzen bekommt, sind deine Define-Symbole schon nicht mehr vorhanden, weil der Präprozessor vorher alles ersetzt hat. Dein Compiler hat niemals einen Bezeichner VORNAME gesehen, er sieht nur das ersetzte Stringliteral. Im fertigen Programm steckt nirgendwo VORNAME drin. Und wenn der Compiler schon nichts mehr davon sieht, bekommt der Debugger erst recht nichts davon mit. Defines werden nicht gesetzt, sie werden ersetzt. Und diese Ersetzung lässt sich nachträglich weder nachvollziehen noch rückgängig machen. Zitieren
_Faby_ Geschrieben 15. Oktober 2010 Autor Geschrieben 15. Oktober 2010 ach damn ich hab mich die gaze Zeit gewundert warum mir des ned angezeigt wird... danke Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.