__FASTCALL
Specifies the Fastcall calling convention in a procedure declaration
Syntax:
declare Sub name __Fastcall [Overload] [Alias "alias"] ( parameters )
declare Function name __Fastcall [Overload] [Alias "alias"] ( parameters ) [ Byref ] as return_type
Sub name [__Fastcall] [Overload] [Alias "alias"] ( parameters )
Function name [__Fastcall] [Overload] [Alias "alias"] ( parameters ) [ Byref ] as return_type
declare Function name __Fastcall [Overload] [Alias "alias"] ( parameters ) [ Byref ] as return_type
Sub name [__Fastcall] [Overload] [Alias "alias"] ( parameters )
Function name [__Fastcall] [Overload] [Alias "alias"] ( parameters ) [ Byref ] as return_type
Description:
Fastcall is a calling convention for x86 targets where the first and second integer arguments are passed in the in ECX and EDX registers respectively instead of on the stack. All other arguments are passed right to left and callee cleans up the stack (like Stdcall).
Fastcall can be specified at both the declaration and the definition.
If a procedure definition has a declaration (with calling convention explicit or by default) and the definition does not explicitly specify a calling convention, then the calling convention is implied by the declaration.
Note: Default calling convention on win32 x86 inside an extern "c++" block for non-static member procedures is Thiscall.
Fastcall can be specified at both the declaration and the definition.
If a procedure definition has a declaration (with calling convention explicit or by default) and the definition does not explicitly specify a calling convention, then the calling convention is implied by the declaration.
Note: Default calling convention on win32 x86 inside an extern "c++" block for non-static member procedures is Thiscall.
Examples:
Extern "c++"
Declare Function Example __Fastcall (param1 As Long, param2 As Byte, param3 As LongInt, param4 As String) As Integer
End Extern
Declare Function Example __Fastcall (param1 As Long, param2 As Byte, param3 As LongInt, param4 As String) As Integer
End Extern
- Since fbc 1.10.0.
Differences from QB:
- New to FreeBASIC
See also:
Back to Procedures