[英]What does (void) sizeof (0[array]) mean?
我遇到了以下代码,它返回C样式数组的大小。
template <typename Type, int N>
int GetArraySize(Type (&array)[N])
{
(void) sizeof (0[array]);
return N;
}
模板部分似乎已经在这个问题中得到了解释。
但是,我仍然不明白sizeof
行的效用是什么。 有任何想法吗? 有人建议避免使用未使用的变量警告,但是可以使用更简单的#pragma
,对吧?
而且,这段代码在任何情况下都会有效吗? 没有任何限制吗?
我认为该行的目的是静默未使用的变量警告。 更简单的是省略参数名称
template <typename Type, int N>
int GetArraySize(Type (&)[N])
{
return N;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.