- 38 名前:デフォルトの名無しさん [2017/01/29(日) 12:57:35.68 ID:ElqR2hUp.net]
- >>23 Type 命令文関係を見てみます。
のつづき。Type みてもわからなかったので、逃げの九素コードを 大域宣言は '複素数(虚数)計算 '(2017.01.29 済)名称変更 Conplex → Complex Type Complex RealPart As Double ImagPart As Double End Type で。ご指摘の通り、n → m への変更済み。 makoto-watanabe.main.jp/freebasic/PgFunction.html より、 関数は、Byref As return_type を指定して、参照を返すこともできます。 とあるので、破壊されない戻り値を保管する場所が必要。 局所ルーチンで参照され、破壊されない戻り値の保管場所は、九素コードとして、大域変数を使う。 Dim Shared ComComplexVal As Complex 関数としては単なるLET文を用意した。 Function TekiToComp(Aval As Complex) ByRef As Complex ComComplexVal.RealPart = Aval.RealPart ComComplexVal.ImagPart = Aval.ImagPart TekiToComp = ComComplexVal End Function 参照側で ComComplexVal.RealPart = -5.0: ComComplexVal.ImagPart = -0.5 Complex1Val.RealPart = 1.0: Complex1Val.ImagPart = 0.1 Complex2Val.RealPart = 2.0: Complex2Val.ImagPart = 0.2 と定義して Complex2Val = TekiToComp(Complex1Val) 関数を実行、3つの変数すべてが Complex1Val の値で一致する。 ここで、ComComplexValに適当な値を設定しても、Complex2Val の値が変化しなかった。 参照渡しと言っても、Complex2Valのアドレス(ポインター)をComComplexValのソレに書き換えるのではなかった。 3つの変数の保存領域は独立して存在する。
|

|