cdecl-スタイルの呼び出し規則を、手続きの宣言で指定します。
構文:
記述:
手続きの宣言で、
Cdecl は、手続きが、
cdecl 呼び出し規則を使用する、と指定します。
cdecl 呼び出し規則では、どんなパラメータも、そのリストの逆順(すなわち右から左の順)で、渡される(スタックに押しつける)ことになっています。
手続きは、
EAX,
ECX または
EDX レジスタを保存する必要はなくて、戻る前に、手続きはスタックを消去(全てのパラメタを取り出す)してはいけません。すなわち、呼ぶコードに残されます。
Cdecl は、可変個引数の手続きの宣言で使うことができます。(最後のパラメーターが、 "
..." としてリストされたものを持つ)
Cdecl は、別の呼び出し規則が明示的に指定されるか、または、
EXTERN blocks の1つで黙示的に示されない限り、Linux、*BSDs と DOS での、デフォルトの呼び出し規則です。
Cdecl は、一般的に、Cコンパイラのためのデフォルトの呼び出し規則です。そして、これは、Unix のようなシステム上で、ほとんど排他的に使われます。
手続き定義に宣言が (呼び出し規約が明示的かデフォルトで)あり、その定義で呼び出し規約が明示的に指定されていない場合、呼び出し規約は宣言によって暗示されます。
例:
' 標準の C ライブラリから、'strcpy' を宣言します。
Declare Function strcpy cdecl Alias "strcpy" (ByVal dest As ZString Ptr, ByVal src As ZString Ptr) As ZString Ptr
QBからの違い:
参照: