私は以下のラフ署名付きコードの一部を持っている:なぜconst値を割り当てることができないのですか?代わりに何をする必要がありますか?
void evaluate(object * this)
{
static const int briefList[] = { CONSTANT_A, CONSTANT_Z };
static const int fullList[] = { CONSTANT_A, CONSTANT_B, ..., CONSTANT_Z};
const int const * pArray;
const int nElements;
int i;
if (this->needDeepsEvaluation)
{
pArray = fullList;
nElements = sizeof(fullList)/sizeof(fullList[0]);
}
else
{
pArray = briefList;
nElements = sizeof(briefList)/sizeof(briefList[0]);
}
for (i = nElements; i; i--)
{
/* A thousand lines of optimized code */
}
this->needsDeepEvaluation = 0;
}
ほとんどのコンパイラは喜んpArrayの割り当てを飲み込むが、nElementsの割り当てにチョークます。この矛盾は私を混乱させ、私は悟りたい。
私はあなたがconstの整数を割り当てることができないことを受け入れて問題ありませんが、私はのconstへのポインタのconstのために期待するとして、なぜそれが機能しませんか?
迅速かつ安価な修正が修飾constをドロップすることですが、ループ内のコードの多くは(私は一度それにかましてきた)macrofiedあるので、それは微妙なバグを紹介するかもしれません。あなたは一定の要素のカウンターを許可するために上記をどのように再構成しますか?
私はこれを受け入れるだろう:
あなたは4(4)syntaticの選択肢があります。 – Christoffer