Referenz - PASCAL
Syntax: [DECLARE] {SUB | FUNCTION} prozedurname PASCAL [OVERLOAD] [ALIAS "externerName"] [(parameterliste) ...] {AS rueckgabetyp} {CONSTRUCTOR [priorität]} [STATIC] [EXPORT]
Typ: Schlüsselwort
Kategorie: Fremdsprachen
Das Schlüsselwort PASCAL sorgt dafür, dass die Parameter bei einem Prozeduraufruf nach PASCAL-Konventionen übergeben werden. PASCAL gewährleistet die Kompatibilität zu PASCAL-Libs mit FreeBASIC.
Die PASCAL-Aufrufkonvention ist das Gegenteil der CDECL-Konvention. Die Parameter werden in der Reihenfolge von links nach rechts ( -> ) auf dem Stack abgelegt, und die aufgerufene Funktion muss den Stack vor dem Rücksprung mit RET XX (Return, Anzahl Byte) ausgleichen.
PASCAL ist die Aufrufkonvention, die standardmäßig in Microsoft QuickBASIC und in der API für Windows 3.1 verwendet wird.
Beispiel: Vergleich der verschiedenen Aufrufmöglichkeiten
Sub s StdCall (s1 As Integer, s2 As Integer)
Print "StdCall ", s1, s2
End Sub
Sub c Cdecl (c1 As Integer, c2 As Integer)
Print "Cdecl ", c1, c2
End Sub
Sub p Pascal (p1 As Integer, p2 As Integer)
Print "Pascal ", p1, p2
End Sub
Asm
push 2 '2. Parameter - s2
push 1 '1. Parameter - s1
Call s 'rechts nach links
push 2 '2. Parameter - c2
push 1 '1. Parameter - c1
Call c 'rechts nach links
Add esp, 8 'der Stack muss durch die aufrufende Funktion aufgeräumt werden
push 1 '1. Parameter - p1
push 2 '2. Parameter - p2
Call p 'links nach rechts
End Asm
SleepUnterschiede zu QB: neu in FreeBASIC.
Siehe auch:
DECLARE,
CDECL,
STDCALL
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
|
||||




FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Versionen