Dann mal wieder meine bescheidene Meinung dazu.
Erster Fall:
Code: Alles auswählen
Macro _ifndef
CompilerIf #True
EndMacro
Macro _endif
CompilerEndIf
EndMacro
_ifndef
Debug "Undefined."
_endif
Der Compiler kompiliert und macht daraus folgendes:
Code: Alles auswählen
Macro _ifndef ;Macro-Defintion beginnt
;CompilerIf #True ;ok, das ist #True, also gehört alles danach bis 'CompilerEndIf' noch dazu
EndMacro ;Macro wurde beendet, besteht also nur aus 'CompilerIf #True'
Macro _endif ;Macro-Defintion beginnt
;CompilerEndIf ;Ende der Bedingung. Alles danach gehört sowieso dazu.
EndMacro ;Macro wurde beendet, besteht jetzt aus 'CompilerEndIf'
;CompilerIf #True ;Das Macro '_ifndef' wurde durch seine Definition ersetzt
Debug "Undefined."
;CompilerEndIf ;Das Macro _endif wurde ersetzt
Zweiter Fall:
Code: Alles auswählen
Macro _ifndef
CompilerIf #False
EndMacro
Macro _endif
CompilerEndIf
EndMacro
_ifndef
Debug "Undefined."
_endif
Wird zu:
Code: Alles auswählen
Macro _ifndef ;Macro-Defintion beginnt
;CompilerIf #False ;ok, das ist #False, also gehört alles danach bis 'CompilerEndIf' nicht dazu
;EndMacro ;fällt weg
Macro _endif ;fällt weg
;CompilerEndIf ;Ende der Bedingung. Alles danach gehört sowieso dazu.
EndMacro ;Macro wurde beendet, besteht jetzt aus 'CompilerIf #False' und 'CompilerEndIf'
;CompilerIf #False
;CompilerEndIF ;Das Macro '_ifndef' wurde durch seine Definition ersetzt
Debug "Undefined."
;_endif ;Diese Macro wurde nirgendwo definiert
Hm.. ist aber auch irgendwie komisch. ^^