【发布时间】:2013-12-13 16:00:19
【问题描述】:
#define CHECK_FOR_ERRORS(ret) \
if(ret != CY_U3P_SUCCESS) \
{ \
handleCriticalError(ret, __FILE__, __LINE__); \
}
预期用途:
CHECK_FOR_ERRORS(CyU3PPibInit(CyTrue, &pibClock));
没有返回变量,没有额外的代码行,只用这个宏包装重要的函数调用。
但它不起作用。该宏不评估函数调用,它只将函数指针转换为int。
我该如何进行这项工作?
【问题讨论】:
-
宏在编译时运行,因此它们从不评估函数调用。您应该将宏视为由预处理器扩展的精美文本替换设备。
-
@hetepeperfan,我可以用函数来做到这一点吗?有什么?
标签: c error-handling