在运行时切换选择
Switch selection in runtime
情况:有 5 个通道,它们被分配给 5 个传感器中的任何一个(运行时可以更改)。Ex- 通道 1 和 2 可以分配给传感器 1。但是,我希望无论分配如何,第二个开关中的所有传感器外壳在完整的"For"循环周期中只执行一次。我写了以下代码,但它不起作用。谁能说出解决方案?
for(uChannel = 0; uChannel < 5; uChannel++) {
switch(uChannel)
{
case 0: sensor= calibrate.channel1;
break;
case 1: sensor= calibrate.channel2;
break;
case 2: sensor= calibrate.channel3;
break;
case 3: sensor= calibrate.channel4;
break;
case 4: sensor= calibrate.channel5;
break;
default:
}
switch(sensor)
{
case 1: function(a,b);
break;
case 2: function(c,b);
break;
case 3: function(d,b);
break;
case 4: function(e,b);
break;
case 5: function(f,b);
break;
default
}
}
您可以为第二个开关案例编写函数,并从第一个开关的每个案例中调用它 例如:
void executeSensor(int sensor){
switch(sensor)
{
case 1: function(a,b);
break;
case 2: function(c,b);
break;
case 3: function(d,b);
break;
case 4: function(e,b);
break;
case 5: function(f,b);
break;
default:
break;
}
}
以这种方式调用:
for(uChannel = 0; uChannel < 5; uChannel++) {
switch(uChannel)
{
case 0: sensor= calibrate.channel1;
executeSensor(sensor)
break;
case 1: sensor= calibrate.channel2;
executeSensor(sensor)
break;
case 2: sensor= calibrate.channel3;
executeSensor(sensor)
break;
case 3: sensor= calibrate.channel4;
executeSensor(sensor)
break;
case 4: sensor= calibrate.channel5;
executeSensor(sensor)
break;
default:
break;
}
}
在上面的代码中有两个编译错误。
首先,您应该解决此问题。默认大小写应以语句结尾break
并;
for(uChannel = 0; uChannel < 5; uChannel++) {
switch(uChannel)
{
case 0: sensor= calibrate.channel1;
break;
case 1: sensor= calibrate.channel2;
break;
case 2: sensor= calibrate.channel3;
break;
case 3: sensor= calibrate.channel4;
break;
case 4: sensor= calibrate.channel5;
break;
default:
break;
}
switch(sensor)
{
case 1: function(a,b);
break;
case 2: function(c,b);
break;
case 3: function(d,b);
break;
case 4: function(e,b);
break;
case 5: function(f,b);
break;
default:
break;
}
}
相关文章:
- 在运行时选择父类的实现
- 在运行时选择类成员的类型
- 是否可以在运行时调用用于选择要调用的用户定义文本的逻辑?
- 选择特定版本的 Visual Studio 命令行工具包,并根据特定版本的C++运行时环境编译文件
- C++ 在运行时选择一个随机对象
- 用于在运行时选择变量的 C++ 预处理器指令
- 在运行时选择要使用的 CRTP 实现
- 在运行时选择模板参数的C 函数
- 运行时检查失败 #2 - 变量"数字选择"周围的堆栈已损坏
- 使用查找表选择具有运行时索引的可变参数类型
- 在运行时选择给定的命名空间
- C++运行时从编译时已知集/枚举中选择模板非类型参数
- 在C STD中,如何在运行时选择计时持续时间
- 通过配置文件在运行时选择变量类型
- 使用条件语句在运行时选择不同的模板化矩阵类
- 是否可以在运行时选择可以访问类的私有成员的函数
- 在运行时选择合适的专用模板
- 如何使用运行时选择基 CTOR 初始化不可复制的基类
- C++运行时选择变量类型
- 实例化函数的多个模板并在运行时选择的通用解决方案