【发布时间】:2010-10-31 17:17:43
【问题描述】:
好的,我不是完全新手,但我不能说我理解以下宏。最令人困惑的部分是将 value 转换为 size_t 的除法:这到底完成了什么?特别是,因为我看到一个否定运算符,据我所知,它可能会导致零值。这是否意味着它会导致被零除的错误? (顺便说一句,宏 是正确的,而且效果很好。)
#define ARRAYSIZE(a) \
((sizeof(a) / sizeof(*(a))) / \
static_cast<size_t>(!(sizeof(a) % sizeof(*(a)))))
【问题讨论】:
标签: c++ c-preprocessor