Macros/de

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de)

Zurück zur Verwendung von Bedingungen, Nachrichten und Makros.

Makros sind den Symbolen und den Compile-Time Variablen ähnlich, der Unterschied zu den Symbolen besteht darin, dass Makros einen Rückgabewert haben.

Symbole kennen nur den Wert definiert oder nicht definiert.

Der Schalter für die Compilerdirektive kennt zwei Einstellungen ON und OFF.

Die Standardeinstellung ist OFF.

Beispiel (damit können Makros verwendet werden):

{$MACRO ON}


Es gibt zwei Arten von Makros: vordefinerte und selbstdefinierte Makros.

vordefinierte Makros

Symbol Beschreibung
FPC_FULLVERSION Enthält die vollständige Versionsnummer als Ganzzahl. Für FPC 2.6.0 ist der Wert 20600.
FPC_VERSION Enthält die vollständige Versionsnummer als Ganzzahl. Für FPC 2.6.0 ist der Wert 20600.
FPC_RELEASE Enthält die Unterversionsnummer (Releasenummer) von FPC.
FPC_PATCH Enthält die Revisionsnummer (Patchnummer) von FPC.

selbstdefinierte Makros

Beispiel 1:

  {$MACRO ON}             // Erlaubt die Verwendung von Makros

  {$define A := 3}        // definiert ein Symbol und weist ihm einen Wert zu
  {$define B := 4}        // definiert ein Symbol und weist ihm einen Wert zu
  {$define Sum := A + B}  // definiert ein Makro

  if Sum = 7 then         // fragt den Inhalt des Makros ab
    ...
  else
    ...;


Beispiel 2 ergibt das gleiche Ergebnis wie Beispiel 1:

  {$MACRO ON}             // Erlaubt die Verwendung von Makros

  {$define Sum := A + B}  // definiert ein Makro
  {$define A := 3}        // definiert ein Symbol und weist ihm einen Wert zu
  {$define B := 4}        // definiert ein Symbol und weist ihm einen Wert zu

  if Sum = 7 then         // fragt den Inhalt des Makros ab
    ...
  else
    ...;


Beispiel 3 führt zu einem Fehler, da ein Symbol nicht mehr definert ist:

  {$MACRO ON}

  {$define Sum := A + B}  // definiert ein Makro
  {$define A := 3}        // definiert ein Symbol und weist ihm einen Wert zu
  {$define B := 4}        // definiert ein Symbol und weist ihm einen Wert zu

  {$undef A}              // hebt die Definition des Symbols A auf

  if Sum = 7 then         // führt zu einem Fehler, da das Symbol A an dieser Stelle nicht mehr existiert
    ...
  else
    ...;

--Olaf 08:17, 20 February 2013 (UTC)