Выбор структуры с помощью оператора IF - PullRequest
0 голосов
/ 25 июня 2011

Я пытаюсь выбрать одно из двух возможных выражений ANSI C, используя оператор IF.Каждое выражение отлично работает само по себе, например ...

wb_Parameters *WeightLimits = set100Parameters();

, но когда они выбраны с помощью IF, например ...

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

, я получаю сообщение об ошибке «Использованиенеобъявленный идентификатор WeightLimits. "Что мне нужно сделать, чтобы это работало внутри оператора IF?

Ответы [ 2 ]

1 голос
/ 25 июня 2011

WeightLimits выходит за рамки после оператора if.Чтобы избежать этого, объявите это перед if:

wb_Parameters *WeightLimits;
if (strcmp(CurrentAircraft->PhenomType,"100") == 0)
    WeightLimits = set100Parameters();
else
    WeightLimits = set300Parameters();
1 голос
/ 25 июня 2011

Сначала объявите, а затем присвойте правильное значение:

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

Если вы сначала не объявите об этом, он выходит из области видимости и больше не может использоваться.

...