gpt4 book ai didi

gcc - 在 GCC 复合语句表达式中调用 return

转载 作者:行者123 更新时间:2023-12-04 12:58:34 24 4
gpt4 key购买 nike

我可以在 GCC 复合语句表达式中安全地使用 return 吗?

例如我定义宏

#define CHECK_FUNC_RESULT(func)    \
({ \
int result = func(); \
if (!result) return; \
result; \
})

并以这种方式在代码中的某处使用它:
int function1() 
{
if (some_condition)
return 0;
...
return 1;
}

void function2()
{
if(CHECK_FUNC_RESULT(function1)) {
... to do something
}
}

我可以期望从 function2(在 some_condition == true 上)返回而没有任何未定义的行为吗?

最佳答案

它应该可以工作,但是只有在 function1 返回 1 时才会处理您的 if() 语句(在您的示例中:从不)。这看起来像一个危险的结构,因为 else 永远不会被执行。

关于gcc - 在 GCC 复合语句表达式中调用 return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21825943/

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