Herunterladen Inhalt Inhalt Diese Seite drucken

Microtronics myDatalogEASY IoT Benutzerhandbuch Seite 250

Inhaltsverzeichnis

Werbung

Die Syntax für Gleitkommawerte ist strenger als die in C. Werte wie ".5" und "6." sind in C akzeptabel,
l
aber im Pawn muss man "0.5" und "6.0" schreiben. In C ist der Dezimalpunkt optional, wenn ein
Exponent enthalten ist, so kann man in C "2E8" schreiben; Pawn akzeptiert den Großbuchstaben "E"
nicht. Verwenden Sie den Kleinbuchstaben "e". Es erfordert das Komma: z.B. "2.0e8" (siehe
"Numerische Konstanten" auf Seite 231).
Pawn unterstützt keine "Zeiger". Für die Übergabe von Funktionsparametern als Referenz bietet
l
Pawn ein "Referenz"-Argument (siehe "Funktionsargumente ("call-by-value" versus "call-by-
reference")" auf Seite 246). Das "Platzhalter"-Argument ersetzt einige Verwendungen des NULL-
Zeigers (siehe "Standardwerte von Funktionsargumenten" auf Seite 248).
Zahlen können mit Hexadezimal-, Dezimal-, oder Binärbasis angegeben werden. Die Oktale Basis
l
wird nicht unterstützt (siehe "Numerische Konstanten" auf Seite 231). Hexadezimale Zahlen müssen
mit "0x" ("x" in Kleinbuchstaben) beginnen. Das Präfix "0X" ist ungültig.
"Cases" in einem "switch"-Statement sind nicht "durchfallend". Es muss dem "case"-Label zumindest
l
eine Anweisung folgen. Um mehrere Anweisungen auszuführen, müssen Sie ein zusammengesetztes
Statement (mit {}) erstellen (siehe "switch ( Ausdruck ) { case Liste }" auf Seite 244). In C/C++ ist die
"switch"-Anweisung ein "bedingtes goto". In Pawn ist die "switch"-Anweisung ein strukturiertes "if".
Eine "break"-Anweisung beendet nur Schleifen. In C/C++ beendet die "break"-Anweisung auch ein
l
"case" in einer "switch"-Anweisung.
Pawn unterstützt "array Zuweisungen", mit der Limitation, dass beide Arrays die gleiche Länge haben
l
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.
"defined" ist ein Operator und keine Präprozessor-Direktive. Der "defined" Operator in Pawn arbeitet
l
mit Konstanten (deklariert mit "const"), globalen Variablen, lokalen Variablen und Funktionen.
Der "sizeof"-Operator gibt die Größe von Variablen in "Elementen" zurück und nicht in "Bytes". Ein
l
Element ist ein Eintrag oder ein Sub-Array. Weitere Details finden Sie im Kapitel "Sonstiges" auf Seite
238.
Eine leere Anweisung ist ein leerer Block (mit {}), nicht ein Semikolon (siehe "Zusammengesetzte
l
Anweisungen" auf Seite 240). Diese Änderung verhindert häufige Fehler.
Eine Division erfolgt in der Weise, dass der Rest der Division das gleiche Vorzeichen hat (oder hätte)
l
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 235).
Es gibt keinen unären Operator "+", da dieser sowieso ein "no-operation"-Operator ist ("a = +1" ist
l
nicht gültig; korrekt: "a = 1").
Drei der bitweisen Operatoren haben andere Prioritäten als in C. Die Prioritätsstufe des "&", "^" und "|"
l
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.
Das Schlüsselwort "const" in Pawn implementiert die "enum" Funktionalität von C.
l
250
Rev. 01

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis