VC中有一个计算数组元素个数的MACRO
template <typename T, size_t size>
char (*__countof_helper(T(&t)[size]))[size];
define _countof(_Array) sizeof(*__countof_helper(_Array))
解读如下:
比如传进去int a[10]的a,那么编译器如下推演:
typedef char (*CP)[10];
CP my__countof_helper(int t[10]);
这样写的目的我目前的理解是单纯为了避免传入指针影响逻辑。