cdecl

Specifies a cdecl-style calling convention in a procedure declaration

Syntax
	KeyPgSubSub name cdecl [KeyPgOverloadOverload] [KeyPgAliasAlias "alias"] ( parameters )
	KeyPgFunctionFunction name cdecl [KeyPgOverloadOverload] [KeyPgAliasAlias "alias"] ( parameters ) [ KeyPgByrefFunctionByRef ] 
	KeyPgAsAs return_type

Description
	In procedure declarations, cdecl specifies that a procedure will use the 
	cdecl calling convention. In the cdecl calling convention, any 
	parameters are to be passed (pushed onto the stack) in the reverse order 
	in which they are listed, that is, from right to left. The procedures 
	need not preserve the EAX, ECX or EDX registers, and must not clean up 
	the stack (pop any parameters) before it returns - that is left to the 
	calling code.

	cdecl is allowed to be used with variadic procedure declarations (those 
	with the last parameter listed as "KeyPgDots...").

	cdecl is the default calling convention on Linux, the *BSDs, and DOS, 
	unless another calling convention is explicitly specified or implied by 
	one of the KeyPgExternBlockExtern Blocks. cdecl is typically the default calling 
	convention for C compilers, and it's used almost exclusively on 
	Unix-like systems.

	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.

Example
	' declaring 'strcpy' from the standard C library
	Declare Function strcpy cdecl Alias "strcpy" (ByVal dest As ZString Ptr, ByVal src As ZString Ptr) As ZString Ptr

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgPascalpascal, KeyPgStdcallstdcall
	* KeyPgDeclareDeclare
	* KeyPgSubSub, KeyPgFunctionFunction

