User manual
Kapitel 4 Pawn Script
l "Cases" in einem "switch"-Statement sind nicht "durchfallend". Es muss dem "case"-Label
zumindest eine Anweisung folgen. Um mehrere Anweisungen auszuführen, müssen Sie ein
zusammengesetztes Statement (mit {}) erstellen (siehe "switch ( Ausdruck ) { case Liste }" auf
Seite 106). In C/C++ ist die "switch"-Anweisung ein "bedingtes goto". In Pawn ist die "switch"-
Anweisung ein strukturiertes "if".
l Eine "break"-Anweisung beendet nur Schleifen. In C/C++ beendet die "break"-Anweisung
auch ein "case" in einer "switch"-Anweisung.
l Pawn unterstützt "array Zuweisungen", mit der Limitation, dass beide Arrays die gleiche Länge
haben müssen. Zum Beispiel, wenn "a" und "b" Arrays mit 6 Zeilen sind, dann ist der
Ausdruck "a=b" gültig. Neben Zeichenketten, unterstützt Pawn auch literale Arrays und somit
Ausdrücke wie "a = {0,1,2,3,4,5}", wobei "a" eine Array Variable mit 6 Elementen ist.
l "defined" ist ein Operator und keine Präprozessor-Direktive. Der "defined" Operator in Pawn
arbeitet mit Konstanten (deklariert mit "const"), globalen Variablen, lokalen Variablen und
Funktionen.
l Der "sizeof"-Operator gibt die Größe von Variablen in "Elementen" zurück und nicht in
"Bytes". Ein Element ist ein Eintrag oder ein Sub-Array. Weitere Details finden Sie im Kapitel
"Sonstiges" auf Seite 100.
l Eine leere Anweisung ist ein leerer Block (mit {}), nicht ein Semikolon (siehe
"Zusammengesetzte Anweisungen" auf Seite 102). Diese Änderung verhindert häufige Fehler.
l Eine Division erfolgt in der Weise, dass der Rest der Division das gleiche Vorzeichen hat (oder
hätte) wie der Nenner. Bei der Division (Operator "/") erfolgt die Rundung immer zum
kleineren ganzzahligen Wert (wobei -2 kleiner ist als -1). D.h. 5/2=2 (2,5 wird zu 2
abgerundet), -5/2=-3 (-2,5 wird zu -3 abgerundet). Der "%"-Operator ergibt immer ein
positives Ergebnis unabhängig vom Vorzeichen des Zählers (siehe "Operatoren und
Ausdrücke" auf Seite 96).
l Es gibt keinen unären Operator "+", da dieser sowieso ein "no-operation"-Operator ist ("a =
+1" ist nicht gültig; korrekt: "a = 1").
l Drei der bitweisen Operatoren haben andere Prioritäten als in C. Die Prioritätsstufe des "&",
"^" und "|" Operators ist höher als die relationalen Operatoren. Dennis Ritchie erklärte, dass
diese Operatoren in C ihre niedrigen Prioritätsstufen bekamen, weil frühe C-Compiler noch
nicht über die logischen Operatoren "&&" und "| |" verfügten, so dass stattdessen bitweise
"&" und "|" verwendet wurden.
l Das Schlüsselwort "const" in Pawn implementiert die "enum" Funktionalität von C.
Rev. 01 113