相关疑难解决方法(0)

让宏定义为函数返回值是不好的做法吗?

使用定义的宏来有条件地返回一个值有一个缺点,即只看客户端代码可能会在宏的点退出.

我正在考虑的用例是写一个值和错误检查,如下所示:

#define WRITE_CHK(file, param)\
if (!write_that_returns_zero_on_fail(file, param)) {\
   handle_error();\
   return false;\
}
Run Code Online (Sandbox Code Playgroud)

客户代码:

bool myfunc()
{
   ...
   WRITE_CHK(file, param) // function might return here
   ...
   return true;
}
Run Code Online (Sandbox Code Playgroud)

我很好奇,如果宏的好处(将在我的代码中的许多地方使用)将超过上面提到的缺点.除了简单地扩展(不使用宏)之外,是否还有其他选择?

c c++ macros

6
推荐指数
1
解决办法
4721
查看次数

标签 统计

c ×1

c++ ×1

macros ×1