2016-07-13 12 views
0

MATLABは、以下の疑似Cコードのような変数を定義できますか?MATLABはネストされた変数スコープをサポートしていますか?

{ 
    int a = 0; 
    int b, c; 
    { 
     int a = 42; 
     b = a; 
    } 
    c = a; 
} 

ネストされた関数を使用してこれをシミュレートすることができます。関数を使用しないでこれを行うことはできますか?

私はMATLABに変換したいCコードがいくつかあるので、これを尋ねました。ネストされた変数宣言をMATLABに変換する方法を知りました。

ありがとう、

+0

私は目的を理解していません。 – excaza

+0

ネストした関数でもこれを行うことができますか? – beaker

+0

ネストされた関数でこれを行う方法を知っている唯一の方法は、ネストされた関数にパラメータとして 'a'を渡すことです。それ以外の場合は、親の 'a'を使用します。 – beaker

答えて

3

あなたがしようとしていることは直接不可能です。良いことは、これはおそらく大丈夫だということです。なぜなら、同じ名前の変数を全面的に読んで適切に保守することは難しいからです。最も簡単な解決策は、変数の名前を変更することです:

{ 
    int a = 0; 
    int b, c; 
    { 
     int a = 42; 
     b = a; 
    } 
    c = a; 
} 

は(MATLABに)なる:

a = 0; 
d = 42; 
b = d; 
c = a; 

「内側」aと「外側」aが違うことをやっている場合は、無行いますそれらに別の名前を付けることによって害を及ぼし、おそらく誰かが後で保守の悪夢を救うことさえできます。

+0

Heh。私が今までに作った最も簡単な「いいえ」答え。 –

関連する問題