Fehler, Irrtümer, Fragen - Seite 2866
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Alles ist möglich, nur ein Makro muss hinzugefügt werden
Ergebnis: 20
Alles ist möglich, nur ein Makro muss hinzugefügt werden
Ergebnis: 20.
Das ist sehr gut. Ich bin nicht gut im Erraten von Rätseln.
Verzeihung, ich war verwirrt, als ich versuchte, mich zu erklären)))
Ein weiteres Mal:
Zum Zeitpunkt der zweiten VALUE-Definition ist das VALUE-Makro noch nicht definiert, so dass VALUE definiert ist als
denn TMP wurde und wird durch WERT definiert.
Aber TMP wird nach der zweiten VALUE-Definition erweitert zu
(Etwa so))
Der Präprozessor trägt nur ein, was er hat, und es spielt keine Rolle, wie und wo es definiert ist. Deshalb muss man damit vorsichtig sein. Beispiel:
und jetzt fügen wir der Funktion noch etwas Böses hinzu, nämlich einen Nebeneffekt
Und das ist nur eine Aufschrift, aber was ist, wenn die Einzahlung von dieser Funktion abhängt?
lustig), wenn Sie es bekommen)
Ich habe es richtig gemacht, nachdem ich die Ersetzung rückgängig gemacht habe, ist die erste Zeile nicht mehr 10 und die zweite TMP ist VALUE, aber nicht 10. D.h. die Substitution ist weit entfernt von einer Zuordnung.
lustig), wenn Sie es bekommen)
Ich habe es richtig gemacht, nachdem ich die Ersetzung rückgängig gemacht habe, ist die erste Zeile nicht mehr 10 und die zweite TMP ist ein WERT, aber nicht 10. D.h. eine Substitution ist noch lange kein Auftrag.
Ja, eine Substitution ist genau eine Substitution, eins-zu-eins. Wenn jedoch das VALUE-Makro in Ihrem Code definiert ist (nicht zu verwechseln mit der Präprozessor-Direktive), erweitert der Präprozessor TMP->VALUE->10 und wenn nicht, TMP->VALUE. In diesem Fall sind die Präprozessor-Direktiven nicht in den Code selbst involviert, sie sind beim Kompilieren nicht mehr vorhanden. Beispiel:
Ja, Substitution ist genau Substitution, eins zu eins. Wenn das VALUE-Makro während der Substitution in Ihrem Code definiert ist (nicht zu verwechseln mit den Präprozessoranweisungen), expandiert der Präprozessor einfach TMP->VALUE->10, und wenn nicht, TMP->VALUE. In diesem Fall sind die Präprozessor-Direktiven nicht in den Code selbst involviert, sie sind beim Kompilieren nicht mehr vorhanden. Beispiel:
Ja, wenn Sie die zweite VALUE-Ersetzung 20 auskommentieren, wird die VALUE-Variablendeklaration verschwinden und der Compiler wird sie nicht sehen und schimpfen)
Alles ist möglich, nur ein Makro muss hinzugefügt werden
Ergebnis: 20
Ich gebe auf)))
Wie ist sie definiert?
?
Ich gebe auf)))
Wie sicher
?
So schnell? Es sind noch nicht alle Spezialisten dabei... Wir werden eine Woche warten.
Tipp: Dies funktioniert auch (aber die Lösung ist etwas anders)
Ergebnis: 20:15
denn TMP wurde und wird immer noch durch WERT definiert.
Hier setzt die "Top-down"-Widerlegung an.
Andernfalls wäre TMP nicht "wie definiert, also bleibt es definiert", sondern wäre zuvor durch 10 ersetzt worden (an dessen Stelle VALUE tritt).
Der Präprozessor verarbeitet den Code also nicht Zeile für Zeile. Was noch zu klären ist, ist das Wie.
@A100, wenn es Ihnen nichts ausmacht, kurz und bündig.
Nicht interessant genug, um zu googeln und zu lesen, aber genug, um zu fragen.
Was ist falsch an meiner Logik?
Ich habe mir vorgestellt, dass die Zeichenfolgen nacheinander analysiert werden. Es gibt also keinen undefinierten Wert auf der rechten Seite:
Tipp: Dies funktioniert auch (aber die Lösung ist etwas anders)
Die Funktionsweise ist also identisch mit MACRO und MACRO2.
Was ist falsch an meiner Logik?