Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

#define string....

Empfohlene Antworten

Veröffentlicht

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

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?
  • Autor

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.

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.

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.

  • Autor

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_

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.