gpt4 book ai didi

c++ - (void) sizeof (0[array]) 是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:13 26 4
gpt4 key购买 nike

我遇到了以下代码,它返回 C 样式数组的大小。

template <typename Type, int N>
int GetArraySize(Type (&array)[N])
{
(void) sizeof (0[array]);
return N;
}

模板部分似乎已经在this question 中解释过了。 .


但是,我仍然不明白 sizeof 行的用途是什么。有任何想法吗?有人建议这是为了避免未使用的变量警告,但可以使用更简单的 #pragma,对吧?

另外,这段代码在任何情况下都有效吗?没有任何限制吗?

最佳答案

我认为该行的目的是静默未使用的变量警告。更简单的方法是省略参数名称

template <typename Type, int N>
int GetArraySize(Type (&)[N])
{
return N;
}

关于c++ - (void) sizeof (0[array]) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44626815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com