Buchstabisierung #@
Wird in einer parametrisierten Makrodefinition einem Makro-Parameter die Zeichenfolge #@ vorangestellt, bewirkt dies, dass der Makro-Parameter nicht einfach mit dem übergebenen Argument ersetzt wird, sondern, dass der übergebene Code als Character in einfachen Anführungszeichen ' ' interpretiert wird, weswegen dieser Makro-Operator hier liebevoll als Buchstabisierung
bezeichnet wird. In anderen Quellen wird er auch als Zeichenoperator
oder auf Englisch als Charizer
bezeichnet. Dieser Makro-Operator ist jedoch nicht auf jedem System verfügbar.
|
|
Details
Auf dem System des Autors ist die Buchstabisierung nicht in den Compiler eingebaut. Nachfolgend jedoch trotzdem die Zeile, wie der Preprozessor sie übersetzen würde:
|
|
Es ist zu beachten, dass die Zeichenfolge #@ einen Makro-Operator darstellt, sprich eine Verknüpfung von Makro-Operanden. In diesem Falle handelt es sich um einen unären Makro-Operator, der einen Operanden rechts erwartet. Als Operanden sind bei der Buchstabisierung explizit nur Makro-Parameter gültig. Wird versucht, dieser Makro-Operator anderweitig im Code zu verwenden, so wird der Compiler einen Fehler melden.