如何解决C中的宏函数 - 逻辑作为参数?
我遇到了以下宏定义,我正在尝试了解它的用法及其语法和逻辑:
#define FOREACH(elem,list,body) {\
for(size_t i = 0; i < size(list); ++i)\
{\
int elem;\
if (get_elem(list,i,&value)) {\
body\
}\
}\
}
我以前遇到过宏函数,但它们更简单,而且从未在其中包含这么多逻辑。我主要不明白,body
参数是什么。 是否可以传入某些逻辑来代替参数名称添加到函数中?
这个指令不是我写的,所以我不确定里面是否有任何错误。
解决方法
是的,您可以将任意逻辑作为 body
参数传递。会贴在这里:
if (get_elem(list,i,&value)) {\
body\
}\
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。