h*****g 发帖数: 944 | 1 C++里是不是现在没有现成的get array size/length的function??
如果没有的话,我在网上看到了一个code
#include
template char (&array(T(&)[N]))[N];
#define length(a) (sizeof a / sizeof a[0])
int main()
{
int a[10];
std::cout << sizeof array(a) << '\n';
std::cout << length(a) << '\n';
}
请问这个code对所有的data type都work吗? 我试试了,好象是可以的。中间有什么错
误吗? |
l******4 发帖数: 729 | 2 stack里面数组的长度你当然知道。 new出来的数组你怎么查长度? |
e****9 发帖数: 316 | 3 #ifndef ARRAYSIZE
#define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
#endif |
p******r 发帖数: 2999 | 4 这个不行
【在 e****9 的大作中提到】 : #ifndef ARRAYSIZE : #define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0])) : #endif
|
p******r 发帖数: 2999 | 5 vc6 无法编译
【在 h*****g 的大作中提到】 : C++里是不是现在没有现成的get array size/length的function?? : 如果没有的话,我在网上看到了一个code : #include : template char (&array(T(&)[N]))[N]; : #define length(a) (sizeof a / sizeof a[0]) : int main() : { : int a[10]; : std::cout << sizeof array(a) << '\n'; : std::cout << length(a) << '\n';
|