Zum Inhalt springen

#define string....


Empfohlene Beiträge

Geschrieben

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...

Geschrieben
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?
Geschrieben

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.

Geschrieben
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.

Geschrieben
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.

Geschrieben

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_

Geschrieben
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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...