Sign in Join
Wiki copytemporary

Macros/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Macros/de

OldNewLine
1+Zurück zur [[using conditionals messages macros/de|Verwendung von Bedingungen, Nachrichten und Makros]].
2+
3+Makros sind den Symbolen und den Compile-Time Variablen ähnlich, der Unterschied zu den Symbolen besteht darin, dass Makros einen Rückgabewert haben.
4+
5+Symbole kennen nur den Wert definiert oder nicht definiert.
6+
7+Der Schalter für die Compilerdirektive kennt zwei Einstellungen ON und OFF.
8+
9+Die Standardeinstellung ist OFF.
10+
11+Beispiel (damit können Makros verwendet werden):
12+
13+``` pascal
14+{$MACRO ON}
15+```
16+
17+Es gibt zwei Arten von Makros: vordefinerte und selbstdefinierte Makros.
18+
19+# vordefinierte Makros
20+
21+| Symbol | Beschreibung |
22+|----|----|
23+| FPC_FULLVERSION | Enthält die vollständige Versionsnummer als Ganzzahl. Für FPC 2.6.0 ist der Wert 20600. |
24+| FPC_VERSION | Enthält die vollständige Versionsnummer als Ganzzahl. Für FPC 2.6.0 ist der Wert 20600. |
25+| FPC_RELEASE | Enthält die Unterversionsnummer (Releasenummer) von FPC. |
26+| FPC_PATCH | Enthält die Revisionsnummer (Patchnummer) von FPC. |
27+
28+# selbstdefinierte Makros
29+
30+Beispiel 1:
31+
32+``` pascal
33+ {$MACRO ON} // Erlaubt die Verwendung von Makros
34+
35+ {$define A := 3} // definiert ein Symbol und weist ihm einen Wert zu
36+ {$define B := 4} // definiert ein Symbol und weist ihm einen Wert zu
37+ {$define Sum := A + B} // definiert ein Makro
38+
39+ if Sum = 7 then // fragt den Inhalt des Makros ab
40+ ...
41+ else
42+ ...;
43+```
44+
45+Beispiel 2 ergibt das gleiche Ergebnis wie Beispiel 1:
46+
47+``` pascal
48+ {$MACRO ON} // Erlaubt die Verwendung von Makros
49+
50+ {$define Sum := A + B} // definiert ein Makro
51+ {$define A := 3} // definiert ein Symbol und weist ihm einen Wert zu
52+ {$define B := 4} // definiert ein Symbol und weist ihm einen Wert zu
53+
54+ if Sum = 7 then // fragt den Inhalt des Makros ab
55+ ...
56+ else
57+ ...;
58+```
59+
60+Beispiel 3 führt zu einem Fehler, da ein Symbol nicht mehr definert ist:
61+
62+``` pascal
63+ {$MACRO ON}
64+
65+ {$define Sum := A + B} // definiert ein Makro
66+ {$define A := 3} // definiert ein Symbol und weist ihm einen Wert zu
67+ {$define B := 4} // definiert ein Symbol und weist ihm einen Wert zu
68+
69+ {$undef A} // hebt die Definition des Symbols A auf
70+
71+ if Sum = 7 then // führt zu einem Fehler, da das Symbol A an dieser Stelle nicht mehr existiert
72+ ...
73+ else
74+ ...;
75+```
76+
77+--Olaf 08:17, 20 February 2013 (UTC)
78+
79+---
80+*From the Free Pascal wiki, page "Macros/de", as it stood on 2020-01-02 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
81+Category: Free Pascal Programmers Guide/de

Back to history