Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!


Referenz - CDECL

Referenz-Navigation

 

Syntax: [DECLARE] {SUB | FUNCTION} prozedurname CDECL [OVERLOAD] [ALIAS "externerName"] [(parameterliste) ...] {AS rueckgabetyp} {CONSTRUCTOR [priorität]} [STATIC] [EXPORT]
Typ: Schlüsselwort
Kategorie: Fremdsprachen

Der Name der CDECL-Aufrufkonvention steht für C-DECLARE. Die Konvention wird von vielen C/C++ -Compilern verwendet, die auf der x86-Architektur laufen. Hierbei werden die Parameter nacheinander von rechts nach links ( <- ) auf den Stack gelegt.

Die aufgerufende Prozedur baut den Stack nicht selbst ab, sodass Prozeduren mit variabler Argumenten-Anzahl und -Länge realisiert werden können (siehe Befehlsreferenzeintrag ... ). Der Stack muss nach dem Aufruf von der aufrufenden Prozedur bereinigt werden.

CDECL ist die Aufrufkonvention, die standarmäßig unter Linux, BSD und DOS verwendet wird, sofern keine andere Konvention explizit festgelegt oder durch einen der BefehlsreferenzeintragEXTERN-Blöcke impliziert 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

Sleep

Unterschiede zu QB: neu in FreeBASIC.

Siehe auch: BefehlsreferenzeintragDECLARE, BefehlsreferenzeintragSTDCALL, BefehlsreferenzeintragPASCAL


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 29.06.2007 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 11.09.2011 von RedakteurMOD gespeichert.
  Versionen Versionen