AND, OR und XOR von PureBasic verarbeitet werden, werde ich mal hier
alles in diesem Thread klar machen.
Wir nehmen mal an, dass der Ausdurck vor der Verknüpfung "L" heißt und
der nach der Verknüpfung "R".
Code: Alles auswählen
If X() and Y()
wahr, dann wird R erst garnicht begonnen. D.h. die Funktion Y() wird nicht
aufgerufen, wenn X() "0" zurückgibt.
Code: Alles auswählen
If X() Or Y()
Code: Alles auswählen
If X() XOr Y()
also nie ein Ausdruck ausgelassen.
Wenn man über das alles bescheid weiß, kann man folgedes machen:
Code: Alles auswählen
If *Pointer And *Pointer\L=10
...
wenn "*Pointer" auf Null zeigt. Doch wenn *Pointer gleich 0 ist, dann
wird der zweite Ausdruck ("*Pointer\L=10") nach dem AND erst garnicht
ausgeführt. Und so kommt es dann auch nicht zu einem Fehler.
Ich hoffe ich konnte euch damit helfen.
Gruß Josef