2011-06-25 10 views
0

IF文を使用して、2つの可能なANSI C式の1つを選択しようとしています。それぞれの式は、それ自体で正常に動作します例えば...IF文を使用して構造体を選択する

wb_Parameters *WeightLimits = set100Parameters(); 

しかし、彼らは私が宣言されていない識別子のエラーメッセージ」使用「を取得した場合など...

if (strcmp(CurrentAircraft->PhenomType,"100") == 0) 
    wb_Parameters *WeightLimits = set100Parameters(); 
else 
    wb_Parameters *WeightLimits = set300Parameters(); 

を介して、選択しているときWeightLimits '私はIF文の中でこの作業をするために何をする必要がありますか?

答えて

1

ifステートメントの後にWeightLimitが範囲外になります。それを避けるには、次の前に宣言してください。

wb_Parameters *WeightLimits; 
if (strcmp(CurrentAircraft->PhenomType,"100") == 0) 
    WeightLimits = set100Parameters(); 
else 
    WeightLimits = set300Parameters(); 
+0

ありがとうJeff!私はこれに数時間を費やし、あなたは2分で私を助けました。どのような素晴らしいリソース。 – MonkeyBusiness

+0

あなたが役に立ったと答えたら彼の答えを受け入れるべきです –

1

まず宣言してから右値割り当て:あなたが最初にそれを宣言しない場合

wb_Parameters *WeightLimits = NULL; 
if (strcmp(CurrentAircraft->PhenomType,"100") == 0) 
    WeightLimits = set100Parameters(); 
else 
    WeightLimits = set300Parameters(); 

それはスコープの外に出ると、それはもう使用できません。

+0

次は、オブジェクト値を設定するときに初期化するのはなぜですか? – pmg

+0

@pmg:http://programmers.stackexchange.com/questions/75039/why-declare-a-variable-in-one-line-and-assign-to-it-in-the-next/75040#75040 – orlp

+0

OK:プログラマは習慣の生き物です:) – pmg

関連する問題