通过IF语句选择结构

时间:2011-06-25 14:15:27

标签: c if-statement ansi structure

我试图使用IF语句选择两个可能的ANSI C表达式之一。每个表达式本身都可以正常工作,例如......

wb_Parameters *WeightLimits = set100Parameters();

但是当他们通过IF选择时,例如......

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

我收到错误消息“使用未声明的标识符'WeightLimits'。”我需要做什么才能在IF语句中使用它?

2 个答案:

答案 0 :(得分:1)

首先声明然后分配正确的值:

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

如果你没有先声明它,它就会超出范围,不能再使用了。

答案 1 :(得分:1)

在if语句之后,WeightLimits超出范围。为避免这种情况,请在if:

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