是否有任何内置的等价物_countof http://msdn.microsoft.com/en-us/library/ms175773(v=VS.100).aspx由其他编译器提供,特别是 GCC 和 Clang?有没有非宏观形式?
使用C++11,非宏形式为:
char arrname[5];
size_t count = std::extent< decltype( arrname ) >::value;
And extent
可以在type_traits
header.
或者,如果您想让它看起来更好一点,请将其包装在以下内容中:
template < typename T, size_t N >
size_t countof( T ( & arr )[ N ] )
{
return std::extent< T[ N ] >::value;
}
然后就变成了:
char arrname[5];
size_t count = countof( arrname );
char arrtwo[5][6];
size_t count_fst_dim = countof( arrtwo ); // 5
size_t count_snd_dim = countof( arrtwo[0] ); // 6
Edit:我只是注意到“C”标志而不是“C++”。所以,如果你是为了 C 而来,请忽略这篇文章。谢谢。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)