[阅读: 440] 2008-01-22 08:06:42
#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/