在以下C++程序:不能出現在恆定表達
static const int row = (dynamic_cast<int>(log(BHR_LEN*G_PHT_COUNT)/log(2)));
static const int pht_bits = ((32*1024)/(G_PHT_COUNT * G_PHT_COUNT * BHR_LEN));
unsigned char tab[pht_bits][1<<row];
我得到的錯誤消息雙對數(雙)」不能出現在一個常數表達式。 爲什麼我得到這個問題,因爲我已經把一個整數投在前面?我應該如何解決這個問題?
不應該在C++中使用C風格轉換。這也不能解決問題。 – 2011-05-08 19:41:53
這個「答案」不回答爲什麼會出現錯誤的問題。 Alex的答案正確地表明**行的邏輯**常量值不是**常量表達式**,因此不能用作數組的大小。錯誤可能會報告在錯誤的行上,但此「答案」不提供解決方案。 – 2015-03-18 17:27:05