Skip to content

__FASTCALL


Specifies the Fastcall calling convention in a procedure declaration

Syntax

vb
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

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.

Examples

start GeSHi

vb
Extern "c++"
    Declare Function Example __Fastcall (param1 As Long, param2 As Byte, param3 As LongInt, param4 As String) As Integer
End Extern

end GeSHi

Version

  • Since fbc 1.10.0.

Differences from QB

  • New to FreeBASIC

See also

  • Cdecl, Stdcall, Thiscall
  • Declare
  • Sub, Function

Back to DocToc

Translated from FreeBASIC official docs. Contact us for removal if infringed.
FreeBASIC is an open-source project, not affiliated with Microsoft