gpt4 book ai didi

c - 如何在 if 条件内定义代码块

转载 作者:行者123 更新时间:2023-11-30 18:44:34 24 4
gpt4 key购买 nike

我使用旧的 C 项目,应该进行一些更改里面有很多宏....函数调用定义为

#define myFunc(arg) myBaseFunc(arg)

bool myBaseFunc是一个函数,实际上有几个myBaseFunc(它是多态性的一种)我需要向 myFunc 添加一些参数正确性检查实际上该项目有:

#define checkArg(arg) {\
// lot of code
}

我无法更改 checkArg 实现1)我想//

/*It is not correct if I do `if(myFunc(arg))`*/

#define myFunc(arg)\
checkArg(arg)\
myBaseFunc(arg)

2)我想

/*It is better...but compiler doesn`t like code block `{}` inside`if(myFunc(arg))`*/

#define myFunc(arg)(\
checkArg(arg),\
myBaseFunc(arg))

这种情况有解决方法吗

最佳答案

一个可能的解决方案是在将 arg 传递给基函数之前检查它。然而,只有当只有一个参数时,这才有效。

#define myFunc(arg) myBaseFunc(checkArg(arg))

您的 checkArg 函数必须更改,以便它们返回与作为参数获得的相同值,例如

int checkArg(int value) {
... test stuff
return value;
}

关于c - 如何在 if 条件内定义代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57640047/

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