作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用旧的 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/
我是一名优秀的程序员,十分优秀!