FreeBASIC マニュアルのトップに戻る

FreeBASIC CVA_START

目次→命令文→手続きCVA_START←オリジナル・サイト

CVA_START 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

可変引数リスト・オブジェクト変数を初期化するマクロ

構文:
cva_start( argument_list, last_param )

パラメータ:
argument_list
初期化する cva_list データ型変数
last_param
手続きパラメータ・リストの ellipsis ... の前の、最後のパラメータ

内容:
可変個の手続きの定義では、argument_list は、cva_list 型の変数であり、手続きに渡される可変長引数リストを操作するには、cva_start で初期化する必要があります。

last_param は、可変個引数手続き定義の、ellipsis ... の前の、最後のパラメーターです。

cva_start は、可変長手続きでだけ使えます。
可変個引数手続きは、最後のパラメータとして ellipsis ... を指定して、宣言または定義され、手続きを呼び出すときに、可変数の引数を受け入れます。

cva_start は、可変個引数 argument_list オブジェクトの構築子のようなもので、最終的にデストラクタのような cva_end を、対応して呼び出す必要があります。
argument_listcva_end が呼び出された後、argument_list を再利用して、別の cva_start を呼び出して、再初期化できます。
cva_startcva_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 )



バージョン:
方言差:
QBからの違い:
参照:
手続きに戻る
変数引数一覧に戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2021-10-11 09:33:28
日本語翻訳:WATANABE Makoto、原文著作者:JeffMarshall

ホームページのトップに戻る

表示-非営利-継承