我试图使用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语句中使用它?
答案 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();