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

FreeBASIC Byref

目次→命令文→手続きBYREF (parameters)←オリジナル・サイト

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

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

パラメタを、明示的に、参照渡しする、宣言指定子。

構文:
Byref param as datatype

用法:
[ declare ] { sub |function } proc_name ( Byref param as datatype )

記述:
値を、サブルーチンか関数に、参照渡し、します。つまり、そのアドレスを、サブルーチンか関数に渡します。
変数を、参照で渡すと、変数の内容を、目標のサブルーチンか関数で変更すると、メイン・ルーチンの変数の内容が変更されてしまうことを意味します。

-lang qb および -lang fblite 方言では、Option ByVal が有効でない限り、Byref がデフォルトのパラメータ引き渡し規則です。

ByVal の反対です。

注意: 定数またはリテラル式も、手続きに参照渡しできますが、明らかにそれらは手続き本体から変更できません。
この場合、コンパイラは、定数またはリテラル式で初期化された一時変数を、参照渡しします。

注意:fbc バージョン1.20.0以降、STRING*N型の引数は、BYREF ZSTRING(またはBYVAL ZSTRING PTR)パラメータに渡されたときに一時変数にコピーされ(STRING*N がそれ自身の終端ヌル文字を持つことを期待しないため)、呼び出し後にコピーバックされます。

警告: 参照渡し時には、宣言されたパラメータの引数と同じ型(または派生型のような完全互換)の引数を渡すことを推奨します。
コンパイラは、異なる型を渡すことを受け入れる場合もありますが、結果は、しばしば期待通りではありません。

例:
Dim MyVar As Integer

Sub ChangeVar (ByRef AVar As Integer)
    AVar = AVar + 1
End Sub

MyVar = 1
Print "MyVar: "; MyVar '出力 = 1
ChangeVar MyVar
Print "MyVar: "; MyVar '出力 = 2
Sleep
End



方言差:

QBからの違い:

参照:
手続きに戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2024-03-07 06:50:25
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

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

表示-非営利-継承