c - 我可以在开关盒中使用两个值吗?
问题描述
我想测试 和 的a
值b
。无论如何我可以switch
同时了解他们的价值观吗?
int a, b;
scanf("%d\n%d", &a, &b);
switch (a) {
case '1':
printf("one");
break;
case '2':
printf("two");
break;
case '3':
printf("three");
break;
}
解决方案
你只能间接地实现这一点。如果a
和b
两者都是int
,您可以执行以下操作
long long c;
c = 65536*a+b;
switch (c){
case whatever:
whatever;
}
但是请注意,此解决方案不是通用的,因为您不能对随机类型执行此操作,例如指针;但是您可能能够实现特定于类型的解决方案。
推荐阅读
- json - json:嵌套输出正确的方式
- javascript - 在 if 语句 VUE 中等待来自 Promise 的数据
- javascript - 想用ngif加载div里面的img,当ngif==false
- c# - 在标题单击时对 DGV 进行排序
- python - 如何在 Eclipse Python (PyDev) 中获取警告 - “未使用的函数”?
- azure-data-lake - 为 JSON 文件分配的 ADLA AU
- xamarin - 地理定位器位置权限
- php - 在同一个函数中调用 wp_mail() 两次(第二个不会发送)
- java - 再次点击后如何取消点击的ListItem的选中状态?
- c# - 将带有构造函数的对象保存到 xml