中国开发网: 论坛: 程序员情感CBD: 贴子 599888
bjwf
这个属于使用模板的一点奇技淫巧.
#define countof( a ) ( sizeof(a) / ( sizeof( (a)[0] ) )
这个宏用来计算数组中成员的个数,有个缺陷是如果你传入一个指针而不是数组名的话,结果肯定不是你想要的,但编译器不会报错.

用模板的话,用个小技巧可以避免这个问题:

template <typename T, size_t N>
char (& countof_helper(T (&)[N]))[N];
#define countof(a) sizeof(countof_helper(a))

countof_helper是个函数,接受任意类型和大小的数组引用做参数.返回一个相同大小的字符型数组的引用.
试图在互联网上划出国界的举动是愚蠢的!!!
把人当成猪羊圈养,草料永远都不够!把人当人待,人有无限的创造力! “人口减少一半,人们两倍富有”的观念为“一种非常糟糕的自甘堕落—这背后的潜台词是,似乎中国人是封闭围栏中的动物,对周围那些自己赖以生存的资源,除了咀嚼,别无办法。”

我的像册:http://picasaweb.google.com/bjwf2000/
我的主页: http://bjwf2000.googlepages.com/

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录