gpt4 book ai didi

对不同变量的条件检查

转载 作者:行者123 更新时间:2023-11-30 14:25:17 26 4
gpt4 key购买 nike

我有一个函数,可以根据另一个变量设置一个变量。

if(!button_x.on)
button_x.on = 1;
if(!button_y.on)
button_y.on = 1;
if(!button_z.on)
button_z.on = 1;
.
.
.

如果是 x, y, z, …。仅在运行时确定。对于各种(数百个)不同的情况有多个这样的条件看起来不太好。在 C 语言中是否有更好的方法来解决这个问题?

<小时/>

编辑:我应该更好地构建上面的例子。

if (!structureA.visited)            
visit_structureA(); // does some operation
if (!structureB.visited)
visit_structureB();
if (!structureC.visited)
visit_structureC();

。。.

结构体的数量和结构体的名称在编译时是未知的。但结构名称遵循上面所示的特定模式。它仅在运行时才知道。我尝试使用类似的宏:

#define VISIT(str) \
if (!structure##str.visited) \
visit_structure##str();

//In the function:
// str = 'known at runtime'
VISIT(str);

但这行不通,原因很明显,预处理器指令是在编译时而不是运行时替换的。不知道有没有更好的办法?

最佳答案

在您的示例中,您根据同一个变量设置一个变量值,而不是另一个变量,如果是这种情况,并且您想将其从 0 更改为 1,反之亦然,您可以无条件地执行此操作:

button_x.on = !button_x.on;

如果您有许多人具有相同的行为理念,请考虑使用数组并对其进行迭代。

关于对不同变量的条件检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439522/

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