Revision history for KeyPgCdecl


Revision [21879]

Last edited on 2017-08-25 02:50:44 by fxm [Added in the syntax the "byref" optional specifier for returning by reference]
Additions:
[[KeyPgFunction|Function]] //name// **Cdecl** [[[KeyPgOverload|Overload]]] [[[KeyPgAlias|Alias]] //"""alias"""//] ( //parameters// ) [ [[KeyPgByrefFunction|Byref]] ] [[KeyPgAs|as]] //return_type//
Deletions:
[[KeyPgFunction|Function]] //name// **Cdecl** [[[KeyPgOverload|Overload]]] [[[KeyPgAlias|Alias]] //"""alias"""//] ( //parameters// ) [[KeyPgAs|as]] //return_type//


Revision [20840]

Edited on 2016-03-12 15:34:12 by fxm [Formatting]

No Differences

Revision [20080]

Edited on 2016-02-10 15:55:24 by DkLwikki [Update link format]
Additions:
[[KeyPgSub|Sub]] //name// **Cdecl** [[[KeyPgOverload|Overload]]] [[[KeyPgAlias|Alias]] //"""alias"""//] ( //parameters// )
[[KeyPgFunction|Function]] //name// **Cdecl** [[[KeyPgOverload|Overload]]] [[[KeyPgAlias|Alias]] //"""alias"""//] ( //parameters// ) [[KeyPgAs|as]] //return_type//
##**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.
- ##[[KeyPgPascal|Pascal]]##, ##[[KeyPgStdcall|Stdcall]]##
- ##[[KeyPgDeclare|Declare]]##
- ##[[KeyPgSub|Sub]]##, ##[[KeyPgFunction|Function]]##
Deletions:
[[KeyPgSub Sub]] //name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""alias"""//] ( //parameters// )
[[KeyPgFunction Function]] //name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""alias"""//] ( //parameters// ) [[KeyPgAs as]] //return_type//
##**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.
- ##[[KeyPgPascal Pascal]]##, ##[[KeyPgStdcall Stdcall]]##
- ##[[KeyPgDeclare Declare]]##
- ##[[KeyPgSub Sub]]##, ##[[KeyPgFunction Function]]##


Revision [16404]

Edited on 2012-10-23 15:26:26 by CountingPine [Capital C in Cdecl]
Additions:
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.
Deletions:
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.


Revision [16400]

Edited on 2012-10-23 15:21:38 by CountingPine [Formatting]
Additions:
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.
- ##[[KeyPgPascal Pascal]]##, ##[[KeyPgStdcall Stdcall]]##
- ##[[KeyPgDeclare Declare]]##
- ##[[KeyPgSub Sub]]##, ##[[KeyPgFunction Function]]##
Deletions:
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.
- [[KeyPgPascal Pascal]], [[KeyPgStdcall Stdcall]]
- [[KeyPgDeclare Declare]]
- [[KeyPgSub Sub]], [[KeyPgFunction Function]]


Revision [16396]

Edited on 2012-10-21 17:46:38 by DkLwikki [Formatting]
Additions:
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 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.
Deletions:
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 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.


Revision [16395]

Edited on 2012-10-21 17:45:17 by DkLwikki [shorter syntax for cdecl usage, not proc usage]
Additions:
[[KeyPgSub Sub]] //name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""alias"""//] ( //parameters// )
[[KeyPgFunction Function]] //name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""alias"""//] ( //parameters// ) [[KeyPgAs as]] //return_type//
Deletions:
[[KeyPgDeclare Declare]] [[[KeyPgStatic Static]]] [[KeyPgSub Sub]] //procedure_name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[[KeyPgModuleConstructor Constructor]] [//priority//]] [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
[[KeyPgDeclare Declare]] [[[KeyPgStatic Static]]] [[KeyPgFunction Function]] //procedure_name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[KeyPgAs as]] //return_type// [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
[[[KeyPgPublic Public]]|[[KeyPgPrivate Private]]] [[KeyPgSub Sub]] //procedure_name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[[KeyPgModuleConstructor Constructor]] [//priority//]] [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
//..procedure body..//
[[KeyPgEnd End]] [[KeyPgSub Sub]]
[[[KeyPgPublic Public]]|[[KeyPgPrivate Private]]] [[KeyPgFunction Function]] //procedure_name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[KeyPgAs as]] //return_type// [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
//..procedure body..//
[[KeyPgEnd End]] [[KeyPgFunction Function]]


Revision [15151]

Edited on 2011-08-07 09:48:29 by FxMwikki [shorter syntax for cdecl usage, not proc usage]
Additions:
[[KeyPgDeclare Declare]] [[[KeyPgStatic Static]]] [[KeyPgSub Sub]] //procedure_name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[[KeyPgModuleConstructor Constructor]] [//priority//]] [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
[[KeyPgDeclare Declare]] [[[KeyPgStatic Static]]] [[KeyPgFunction Function]] //procedure_name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[KeyPgAs as]] //return_type// [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
[[[KeyPgPublic Public]]|[[KeyPgPrivate Private]]] [[KeyPgSub Sub]] //procedure_name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[[KeyPgModuleConstructor Constructor]] [//priority//]] [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
[[[KeyPgPublic Public]]|[[KeyPgPrivate Private]]] [[KeyPgFunction Function]] //procedure_name// **Cdecl** [[[KeyPgOverload Overload]]] [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[KeyPgAs as]] //return_type// [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
Deletions:
[[KeyPgDeclare Declare]] [[[KeyPgStatic Static]]] [[KeyPgSub Sub]] //procedure_name// [[[KeyPgOverload Overload]]] **Cdecl** [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[[KeyPgModuleConstructor Constructor]] [//priority//]] [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
[[KeyPgDeclare Declare]] [[[KeyPgStatic Static]]] [[KeyPgFunction Function]] //procedure_name// [[[KeyPgOverload Overload]]] **Cdecl** [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[KeyPgAs as]] //return_type// [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
[[[KeyPgPublic Public]]|[[KeyPgPrivate Private]]] [[KeyPgSub Sub]] //procedure_name// [[[KeyPgOverload Overload]]] **Cdecl** [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[[KeyPgModuleConstructor Constructor]] [//priority//]] [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]
[[[KeyPgPublic Public]]|[[KeyPgPrivate Private]]] [[KeyPgFunction Function]] //procedure_name// [[[KeyPgOverload Overload]]] **Cdecl** [[[KeyPgAlias Alias]] //"""external_name"""//] [([//parameter_list//])] [[KeyPgAs as]] //return_type// [[[KeyPgStatic Static]]] [[[KeyPgExport Export]]]


Revision [15148]

Edited on 2011-08-07 09:35:04 by FxMwikki [shorter syntax for cdecl usage, not proc usage]
Additions:
##**Cdecl**## is allowed to be used with variadic procedure declarations (those with the last parameter listed as "##[[KeyPgDots ...]]##").


Revision [15076]

Edited on 2011-04-15 12:13:16 by DkLwikki [mention that cdecl is the default callconv except on Windows]
Additions:
//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.
Deletions:
##**cdecl**## is the default calling convention for procedures declared within ##[[KeyPgExternBlock Extern "C"]]## and ##[[KeyPgExternBlock Extern "C++"]]## blocks. ##**cdecl**## is also typically the default calling convention for many C compilers.


Revision [14270]

Edited on 2009-08-29 21:51:35 by CountingPine [Remove CamelCase links in "New to FreeBASIC"]
Additions:
- New to ""FreeBASIC""
Deletions:
- New to FreeBASIC


Revision [11457]

The oldest known version of this page was created on 2007-11-09 16:18:10 by JeffMarshall [Remove CamelCase links in "New to FreeBASIC"]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode