【发布时间】:2014-12-30 08:34:17
【问题描述】:
我是从opencv的源代码中读到的
#define IPP_FILTER_MEDIAN_BORDER(ippType, ippDataType, flavor) \
do \
{ \
if (ippiFilterMedianBorderGetBufferSize(dstRoiSize, maskSize, \
ippDataType, CV_MAT_CN(type), &bufSize) >= 0) \
{ \
Ipp8u * buffer = ippsMalloc_8u(bufSize); \
IppStatus status = ippiFilterMedianBorder_##flavor(src.ptr<ippType>(), (int)src.step, \
dst.ptr<ippType>(), (int)dst.step, dstRoiSize, maskSize, \
ippBorderRepl, (ippType)0, buffer); \
ippsFree(buffer); \
if (status >= 0) \
{ \
CV_IMPL_ADD(CV_IMPL_IPP); \
return; \
} \
} \
setIppErrorStatus(); \
} \
while ((void)0, 0)
这里的while(0)可以理解,但是为什么要加上“(void)0”呢。
【问题讨论】:
-
要包含ASCII艺术
)0, 0)? -
@V-X,我没有看到答案——这个问题与
do的使用无关——并且该问题被标记为与另一个问题重复。 -
@V-X,第一部分是答案,已作为答案发布,不在您链接的问题中。