#assert
-Direktive
Die #assert
-Direktive dient dazu, mehr oder weniger standartisierte Prädikate zu definieren, wie beispielsweise, um den Prozessortyp anzugeben. Da sich jedoch niemals ein Standard durchsetzte, sind diese Prädikate unsicher, da sie von System zu System verschieden gehandhabt, benannt und teilweise ganz weggelassen werden. Vom Gebrauch der #assert
-Direktive im allgemeinen Programmieralltag wird somit ABGERATEN.
Details
Die #assert
-Direktive definiert Prädikate, wobei ein Prädikat mit Antwort auf eine Frage
umschrieben werden kann. Die #assert
-Direktive legt fest, welches die einzig gültige Antwort für ein Prädikat ist. Die Antwort auf ein Prädikat wird dabei in runde Klammern ()
geschrieben. Um das Prädikat mittels der #if
-Direktive abzufragen, muss dem Prädikat ein #
vorangestellt werden. Die zu überprüfende Antwort wird wiederum in runde Klammern ()
geschrieben.
Um abzufragen, ob überhaupt irgend ein Wert für ein Prädikat gesetzt wurde, kann die Antwort inklusive den Klammern einfach weggelassen werden. Um ein Prädikat neu zu definieren, können die Angaben mit einer erneuten #assert
-Direktive überschrieben werden. Um das Prädikat zu löschen, wird die #unassert
-Direktive benötigt.
Ein Beispiel: Auf gewissen Systemen sei ein Prädikat namens endian
definiert, welches zwei Antworten haben kann: little
und big
. Damit könnte automatisch ermittelt werden, ob der Prozessor das Little- oder Big-Endian-Format unterstützt und die Compilierung dementsprechend gesteuert werden. Das verwendete System des Autors brachte jedoch hervor, dass dieses Prädikat nicht definiert sei: