可変引数リスト・オブジェクト変数を初期化するマクロ
構文:
cva_start( argument_list, last_param )
パラメータ:
内容:
可変個の手続きの定義では、
argument_list は、
cva_list 型の変数であり、手続きに渡される可変長引数リストを操作するには、
cva_start で初期化する必要があります。
last_param は、可変個引数手続き定義の、
ellipsis ... の前の、最後のパラメーターです。
cva_start は、可変長手続きでだけ使えます。
可変個引数手続きは、最後のパラメータとして
ellipsis ... を指定して、宣言または定義され、手続きを呼び出すときに、可変数の引数を受け入れます。
cva_start は、可変個引数
argument_list オブジェクトの構築子のようなもので、最終的にデストラクタのような
cva_end を、対応して呼び出す必要があります。
argument_list の
cva_end が呼び出された後、
argument_list を再利用して、別の
cva_start を呼び出して、再初期化できます。
cva_start と
cva_end の呼び出しは、同じ手続き内でペアで呼び出す必要があります(プラットフォーム間の互換性のため)。
cva_copy は、
cva_start と似ていますが、コピー構築子のように、すでに初期化されている可変個引数
argument_list オブジェクトから、可変個引数
argument_list オブジェクトを初期化する点が異なります。
例:
'' typical usage of iterating through all arguments
Sub proc CDecl(count As Integer, ... )
Dim args As cva_list
cva_start( args, count )
For i As Integer = 1 To count
Print cva_arg( args, Integer )
Next
cva_end( args )
End Sub
proc( 4, 4000, 300, 20, 1 )
'' example of using cva_start to get the first argument
'' then restarting to get all the arguments
Sub proc CDecl(count As Integer, ... )
Dim args As cva_list
'' get the first argument only
cva_start( args, count )
Print cva_arg( args, Integer )
cva_end( args )
'' restart and get all the arguments
cva_start( args, count )
For i As Integer = 1 To count
Print cva_arg( args, Integer )
Next
cva_end( args )
End Sub
proc( 4, 4000, 300, 20, 1 )
バージョン:
方言差:
- -lang qb 方言では、別名 __cva_start で参照されない限り、使えません。
QBからの違い:
参照: