gpt4 book ai didi

c - 我们如何使用可变变量作为开关盒标签

转载 作者:太空宇宙 更新时间:2023-11-04 07:24:25 24 4
gpt4 key购买 nike

我们如何使用可变变量作为 switch case 标签。换句话说,我定义了一个宏。但我需要根据条件在运行时更改此值。我该如何实现?

例子如下,

在这里,案例“FOO”会起作用吗?

#define CONDITION (strcmp(str, "hello") == 0)
#define FOO1 (10)
#define FOO2 (20)
#define FOO ((CONDITION) ? (FOO1) : (FOO2))


char *var="hello";

int main()
{
int p = 20;
switch(p) {
case FOO:
printf("\n case FOO");
break;
case 30:
printf("\n case 30");
break;
default:
printf("\n case default");
break;
}

return(0);
}

最佳答案

switch 条件需要在编译时解决。 case 值需要是编译时常量表达式

根据你的问题,你想使用运行时条件来更改 case 的值,所以这是不可能的。

实现运行时检查的一种方法是使用 if 条件。

关于c - 我们如何使用可变变量作为开关盒标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19461526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com