Difference between revisions of "local compiler directives/de"

From Free Pascal wiki
Jump to navigationJump to search
(nominate for deletion: unnecessary redirect [I couldn’t disable creation during Move operation])
Tag: Removed redirect
(undo: [I am not allowed to move to existing destination])
Line 1: Line 1:
[[Category: Pages for deletion]]
+
{local compiler directives}}
 +
 
 +
 
 +
Zurück zu den [[Pascal basics/de|Pascal Grundlagen]].<br>
 +
 
 +
 
 +
__TOC__
 +
 
 +
 
 +
Lokale Direktiven können mehr als einmal in einer Unit oder in einem Programm verwendet werden.
 +
 
 +
=Lokale Compiler Direktiven=
 +
 
 +
[[sAlign/de|$A und $ALIGN]] bestimmt die Datenausrichtung von Records<br>
 +
[[$A/de|$A1, $A2,$A4 und $A8]] bestimmt die Datenausrichtung von Records und hat die selbe Wirkung wie die Direktive $PACKRECORDS<br>
 +
[[sBooleval/de|$B oder $BOOLEVAL]] im Standardmodus wird dem eigenen Programm die Kurzschlussauswertung von Wahrheitswerten ermöglicht<br>
 +
[[$Assertions/de|$C oder $ASSERTIONS]] dient der Fehlersuche<br>
 +
[[$Bitpacking/de|$BITPACKING]] ermöglicht das Bitweise packen von Records<br>
 +
[[sCalling/de|$CALLING]] legt die Aufrufkonvention für Unterprogramme fest<br>
 +
[[sCheckpointer/de|$CHECKPOINTER]] prüft, ob ein Pointer einen gültigen Wert hat<br>
 +
[[sCodealign/de|$CODEALIGN]] bestimmt die Ausrichtung des Codes im Speicher<br>
 +
[[sCoperators/de|$COPERATORS]] erlaubt die Verwendung von Operatoren ähnlich der wie in der Programmiersprache C<br>
 +
[[sDefine/de|$DEFINE oder $DEFINEC]] erlaubt die Definition eigener Symbole<br>
 +
[[sExtendedsym/de|$EXTENDEDSYM]] wird vom Compiler ignoriert<br>
 +
[[sFar/de|$F]] wird vom Compiler ignoriert<br>
 +
[[sFputype/de|$FPUTYPE]] compiliert entsprechen dem angegebenen Coprozessortyp den entsprechenden Code<br>
 +
[[sGoto/de|$GOTO]] erlaubt dem eigenen Programm die Verwendung von Goto und Label<br>
 +
[[$H/de|$H oder $LONGSTRINGS]] erlaubt es den Stringtyp für das reservierte Wort String festzulegen<br>
 +
[[sHppemit/de|$HPPEMIT]] wird vom Compiler ignoriert<br>
 +
[[sImplicitexeptions/de|$IMPLICITEXCEPTIONS]] dient der Vermeidung von Speicherlöchern<br>
 +
[[sInline/de|$INLINE]] kopiert Prozeduren an die Stelle ihres Aufrufs<br>
 +
[[sInterfaces/de|$INTERFACES]] legt fest, welcher Schnittstellentyp bei der Deklaration der Schnittstellen verwendet werden soll<br>
 +
[[sIochecks/de|$I oder $IOCHECKS]] steuert, ob Ein- Aussgabeschnittstellen kontolliert werden sollen<br>
 +
[[sIncludefile/de|$I oder $INCLUDE]] fügt eine Datei in die Compilierung ein<br>
 +
[[sIncludecompilerinfo/de|$I oder $INCLUDE]] fügt bestimmte Compilerinformationen in das Programm ein<br>
 +
[[sWritableconst/de|$J oder $WRITEABLECONST]] erlaubt während der Programmlaufzeit eine Wertzuweisung an typisierte Konstanten<br>
 +
[[sLink/de|$L oder $LINK]] fügt beim Linken (Binden) des Programms die angegebene Objektdatei ein<br>
 +
[[sLinklib/de|$LINKLIB]] fügt beim Linken (Binden) des Programms die angegebene Bibliothek (DLL) ein<br>
 +
[[sTypeinfo/de|$M oder $TYPEINFO]] erstellt Run-Time Type Informationen<br>
 +
[[sMacro/de|$MACRO]] erlaubt die Verwendung von Makros<br>
 +
[[sMinenumsize/de|$MINENUMSIZE]] dient der Kompatibilität zu Delphi, siehe [[sPackenum/de|$PACKENUM oder $Z]]<br>
 +
[[sMinfpconstprec/de|$MINFPCONSTPREC]] legt die minimale Genauigkeit von Fliesskommakonstanten fest<br>
 +
[[sNodefine/de|$NODEFINE]] wird vom Compiler ignoriert<br>
 +
[[sObjectchecks/de|$OBJECTCHECKS]] kontrolliert die Verwendung des Self Pointers<br>
 +
[[sOptimization/de|$OPTIMIZATION]] erlaubt bestimmte Optimierungen<br>
 +
[[sOutput_format/de|$OUTPUT_FORMAT]] legt das Ausgabeformat der vom Compiler erstellten Objektdatei fest<br>
 +
[[sPackenum/de|$PACKENUM oder $Z]] erlaubt dem Compiler Enumerationen (Aufzählungen) zu packen<br>
 +
[[sPackrecords/de|$PACKRECORDS]] bestimmt, wie Records im Arbeitsspeicher ausgerichtet werden<br>
 +
[[sPackset/de|$PACKSET]] legt fest, wie ein Set gepackt wird<br>
 +
[[sPop/de|$POP]] stellt die letzten Compiler Einstellungen wieder her<br>
 +
[[sPush/de|$PUSH]] sichert die aktuellen Compiler Einstellungen<br>
 +
[[sOverflowchecks/de|$OVERFLOWCHECKS]] überwacht den Überlauf von Integervariablen<br>
 +
[[sRangechecks/de|$R oder $RANGECHECKS]] überprüft, ob bei diversen Bereichen der Index überläuft<br>
 +
[[sResource/de|$R oder $RESOURCE]] bindet eine Resourcendatei ein<br>
 +
[[sStatic/de|$STATIC]] erlaubt die Verwendung des reservierten Wortes static<br>
 +
[[sTypedadress/de|$T oder $TYPEDADDRESS]] bestimmt, ob der Adressoperator @ einen typisiertern oder untypisiertern Pointer zurück gibt<br>
 +
[[sUndef/de|$UNDEF]] hebt die Definition eines Symbols auf<br>
 +
[[sVarstringchecks/de|$V oder $VARSTRINGCHECKS]] legt fest, wie streng der Compiler Stringzuweisungen an Strings prüft<br>
 +
[[sStackframes/de|$W or $STACKFRAMES]] legt die Bedigungen für die Erstellung von Stackframes fest<br>
 +
[[sWait/de|$WAIT]] wartet mit der Verarbeitung bis die Enter-Taste gedrückt wird<br>
 +
==Bedingte Compilierung==
 +
[[sElse/de|$ELSE]] ist eine Verzweigung der bedingten Compilierung<br>
 +
[[sElseIf/de|$ELSEIF]] ist eine Verzweigung mit Bedingung der bedingten Compilierung<br>
 +
[[sEndif/de|$ENDIF]] ist das Ende einer bedingten Compilierung<br>
 +
[[sIf/de|$IF]] ist der Anfang der bedingten Compilierung<br>
 +
[[sIfdef/de|$IFDEF]] ist der Anfang einer bedingten Compilierung<br>
 +
[[sIfndef/de|$IFNDEF]] ist der Anfang einer bedingten Compilierung<br>
 +
[[sIfopt/de|$IFOPT]] ist der Anfang einer bedingten Compilierung<br>
 +
==Selbstdefinierte Compiler- Warnungen, Meldungen, Hinweise usw.==
 +
[[sError/de|$ERROR]] gibt eine selbstdefinierte Fehlermeldung aus<br>
 +
[[sFatal/de|$FATAL]] gibt eine selbstdefinierte fatale Fehlermeldung aus<br>
 +
[[sHint/de|$HINT]] erstellt eine selbstdefinierte Hinweismeldung<br>
 +
[[sHints/de|$HINTS]] erlaubt selbstdefinierte Hinweismeldungen<br>
 +
[[sInfo/de|$INFO]] gibt eine selbstdefinierte Infomeldung aus<br>
 +
[[sMessage/de|$MESSAGE]] erstellt eine selbstdefinierte Infonachricht<br>
 +
[[sNote/de|$NOTE]] erstellt eine selbstdefinierte Notizmeldung<br>
 +
[[sNotes/de|$NOTES]] erlaubt das erstellen von selbstdefinierten Notizmeldungen<br>
 +
[[sStop/de|$STOP]] gibt eine selbstdefinierte fatale Fehlermeldung aus<br>
 +
[[sWarning/de|$WARNING]] erstellt eine selbstdefinierte Warnmeldung<br>
 +
[[sWarnings/de|$WARNINGS]] erlaubt selbstdefinierte Warnmeldungen<br>
 +
<br>
 +
 
 +
=Lokale Compiler Direktiven nur für Intel 80x86 und kompatible Prozessoren=
 +
[[sAsmmode/de|$ASMMODE]] Assemblermodus<br>
 +
[[sI386xxx/de|$I386_XXX]] legt das Assemblerformat fest<br>
 +
[[sMmx/de|$MMX]] erzwingt Optimierungen für den MMX Prozessor<br>
 +
[[sSaturation/de|$SATURATION]] Saturation (Schutz gegen Speicherüberlauf) Operationen für den MMX Prozessor<br>
 +
[[sMaxfpuregisters/de|$MAXFPUREGISTERS]] legt die maximale Anzahl der zu nutzenden Fliesskommaregister fest<br>
 +
<br>
 +
 
 +
=Lokale Compiler Direktiven nur für das Betriebssystem Darwin=
 +
[[sLinkframework/de|$LINKFRAMEWORK]] fügt ein Framework ein<br>
 +
<br>
 +
=Lokale Compiler Direktiven nur für Compiler Mode MacPas=
 +
Diese Befehle werden aus Kompatibilität zum existierenden Mac OS Pascal Compiler unterstützt:<br>
 +
[[sAlign/de|$A und $ALIGN]] bestimmt die Datenausrichtung von Records<br>
 +
[[sErrorc/de|$ERRORC]] gibt eine Fehlermeldung aus<br>
 +
[[sOv/de|$Q oder $OV]] überwacht den Überlauf von Integervariablen<br>
 +
==Bedingte Compilierung==
 +
[[sElsec/de|$ELSEC]] ist eine Verzweigung der bedingten Compilierung<br>
 +
[[sElifc/de|$ELIFC]] ist eine Verzweigung der bedingten Compilierung<br>
 +
[[sEndc/de|$ENDC]] ist das Ende einer bedingten Compilierung<br>
 +
[[sIfc/de|$IFC]] ist der Anfang einer bedingten Compilierung<br>
 +
==Symbole==
 +
[[sDefinec/de|$DEFINEC]] erlaubt die Definition eigener Symbole<br>
 +
[[sSetc/de|$SETC]] definiert ein Symbol und weist ihm einen Wert zu<br>
 +
[[sUndefc/de|$UNDEFC]] hebt die Definition eines Symbols auf<br>
 +
<br>
 +
<br>
 +
--[[User:Olaf|Olaf]] 17:00, 8 November 2012 (UTC)
 +
{{AutoCategory}}[[Category:Free Pascal Programmers Guide/de]]

Revision as of 15:39, 23 August 2020

{local compiler directives}}


Zurück zu den Pascal Grundlagen.



Lokale Direktiven können mehr als einmal in einer Unit oder in einem Programm verwendet werden.

Lokale Compiler Direktiven

$A und $ALIGN bestimmt die Datenausrichtung von Records
$A1, $A2,$A4 und $A8 bestimmt die Datenausrichtung von Records und hat die selbe Wirkung wie die Direktive $PACKRECORDS
$B oder $BOOLEVAL im Standardmodus wird dem eigenen Programm die Kurzschlussauswertung von Wahrheitswerten ermöglicht
$C oder $ASSERTIONS dient der Fehlersuche
$BITPACKING ermöglicht das Bitweise packen von Records
$CALLING legt die Aufrufkonvention für Unterprogramme fest
$CHECKPOINTER prüft, ob ein Pointer einen gültigen Wert hat
$CODEALIGN bestimmt die Ausrichtung des Codes im Speicher
$COPERATORS erlaubt die Verwendung von Operatoren ähnlich der wie in der Programmiersprache C
$DEFINE oder $DEFINEC erlaubt die Definition eigener Symbole
$EXTENDEDSYM wird vom Compiler ignoriert
$F wird vom Compiler ignoriert
$FPUTYPE compiliert entsprechen dem angegebenen Coprozessortyp den entsprechenden Code
$GOTO erlaubt dem eigenen Programm die Verwendung von Goto und Label
$H oder $LONGSTRINGS erlaubt es den Stringtyp für das reservierte Wort String festzulegen
$HPPEMIT wird vom Compiler ignoriert
$IMPLICITEXCEPTIONS dient der Vermeidung von Speicherlöchern
$INLINE kopiert Prozeduren an die Stelle ihres Aufrufs
$INTERFACES legt fest, welcher Schnittstellentyp bei der Deklaration der Schnittstellen verwendet werden soll
$I oder $IOCHECKS steuert, ob Ein- Aussgabeschnittstellen kontolliert werden sollen
$I oder $INCLUDE fügt eine Datei in die Compilierung ein
$I oder $INCLUDE fügt bestimmte Compilerinformationen in das Programm ein
$J oder $WRITEABLECONST erlaubt während der Programmlaufzeit eine Wertzuweisung an typisierte Konstanten
$L oder $LINK fügt beim Linken (Binden) des Programms die angegebene Objektdatei ein
$LINKLIB fügt beim Linken (Binden) des Programms die angegebene Bibliothek (DLL) ein
$M oder $TYPEINFO erstellt Run-Time Type Informationen
$MACRO erlaubt die Verwendung von Makros
$MINENUMSIZE dient der Kompatibilität zu Delphi, siehe $PACKENUM oder $Z
$MINFPCONSTPREC legt die minimale Genauigkeit von Fliesskommakonstanten fest
$NODEFINE wird vom Compiler ignoriert
$OBJECTCHECKS kontrolliert die Verwendung des Self Pointers
$OPTIMIZATION erlaubt bestimmte Optimierungen
$OUTPUT_FORMAT legt das Ausgabeformat der vom Compiler erstellten Objektdatei fest
$PACKENUM oder $Z erlaubt dem Compiler Enumerationen (Aufzählungen) zu packen
$PACKRECORDS bestimmt, wie Records im Arbeitsspeicher ausgerichtet werden
$PACKSET legt fest, wie ein Set gepackt wird
$POP stellt die letzten Compiler Einstellungen wieder her
$PUSH sichert die aktuellen Compiler Einstellungen
$OVERFLOWCHECKS überwacht den Überlauf von Integervariablen
$R oder $RANGECHECKS überprüft, ob bei diversen Bereichen der Index überläuft
$R oder $RESOURCE bindet eine Resourcendatei ein
$STATIC erlaubt die Verwendung des reservierten Wortes static
$T oder $TYPEDADDRESS bestimmt, ob der Adressoperator @ einen typisiertern oder untypisiertern Pointer zurück gibt
$UNDEF hebt die Definition eines Symbols auf
$V oder $VARSTRINGCHECKS legt fest, wie streng der Compiler Stringzuweisungen an Strings prüft
$W or $STACKFRAMES legt die Bedigungen für die Erstellung von Stackframes fest
$WAIT wartet mit der Verarbeitung bis die Enter-Taste gedrückt wird

Bedingte Compilierung

$ELSE ist eine Verzweigung der bedingten Compilierung
$ELSEIF ist eine Verzweigung mit Bedingung der bedingten Compilierung
$ENDIF ist das Ende einer bedingten Compilierung
$IF ist der Anfang der bedingten Compilierung
$IFDEF ist der Anfang einer bedingten Compilierung
$IFNDEF ist der Anfang einer bedingten Compilierung
$IFOPT ist der Anfang einer bedingten Compilierung

Selbstdefinierte Compiler- Warnungen, Meldungen, Hinweise usw.

$ERROR gibt eine selbstdefinierte Fehlermeldung aus
$FATAL gibt eine selbstdefinierte fatale Fehlermeldung aus
$HINT erstellt eine selbstdefinierte Hinweismeldung
$HINTS erlaubt selbstdefinierte Hinweismeldungen
$INFO gibt eine selbstdefinierte Infomeldung aus
$MESSAGE erstellt eine selbstdefinierte Infonachricht
$NOTE erstellt eine selbstdefinierte Notizmeldung
$NOTES erlaubt das erstellen von selbstdefinierten Notizmeldungen
$STOP gibt eine selbstdefinierte fatale Fehlermeldung aus
$WARNING erstellt eine selbstdefinierte Warnmeldung
$WARNINGS erlaubt selbstdefinierte Warnmeldungen

Lokale Compiler Direktiven nur für Intel 80x86 und kompatible Prozessoren

$ASMMODE Assemblermodus
$I386_XXX legt das Assemblerformat fest
$MMX erzwingt Optimierungen für den MMX Prozessor
$SATURATION Saturation (Schutz gegen Speicherüberlauf) Operationen für den MMX Prozessor
$MAXFPUREGISTERS legt die maximale Anzahl der zu nutzenden Fliesskommaregister fest

Lokale Compiler Direktiven nur für das Betriebssystem Darwin

$LINKFRAMEWORK fügt ein Framework ein

Lokale Compiler Direktiven nur für Compiler Mode MacPas

Diese Befehle werden aus Kompatibilität zum existierenden Mac OS Pascal Compiler unterstützt:
$A und $ALIGN bestimmt die Datenausrichtung von Records
$ERRORC gibt eine Fehlermeldung aus
$Q oder $OV überwacht den Überlauf von Integervariablen

Bedingte Compilierung

$ELSEC ist eine Verzweigung der bedingten Compilierung
$ELIFC ist eine Verzweigung der bedingten Compilierung
$ENDC ist das Ende einer bedingten Compilierung
$IFC ist der Anfang einer bedingten Compilierung

Symbole

$DEFINEC erlaubt die Definition eigener Symbole
$SETC definiert ein Symbol und weist ihm einen Wert zu
$UNDEFC hebt die Definition eines Symbols auf


--Olaf 17:00, 8 November 2012 (UTC)