我遇到以下代碼,它返回C風格數組的大小。(void)sizeof(0 [array])是什麼意思?
template <typename Type, int N>
int GetArraySize(Type (&array)[N])
{
(void) sizeof (0[array]);
return N;
}
模板部分似乎已在this question中進行了說明。
但我仍然不明白sizeof
系列的效用是什麼。有任何想法嗎? 有人建議避免未使用的變量警告,但可以使用更簡單的#pragma
,對吧?
此外,這段代碼在任何情況下都會有效嗎?沒有任何限制嗎?
'#pragma'不標準(雖然大部分主流編譯器都實現它),但是鑄造作廢是 – Curious
'0陣列]'是一樣的'陣列' –
我在sizeof行中看不到任何一點。 'array'參數名稱可以省略以避免未使用的變量警告。它也應該使用並返回'size_t'。 – VTT