У меня была похожая проблема.В моем случае мне понадобился массив констант для использования в качестве размера других статических массивов.Когда я попытался использовать
const int my_const_array[size] = {1, 2, 3, ... };
, а затем объявил:
int my_static_array[my_const_array[0]];
Я получил ошибку от моего компилятора:
array bound is not an integer constant
Итак, наконец-то я сделалследующее (может быть, есть более элегантные способы сделать это):
#define element(n,d) ==(n) ? d :
#define my_const_array(i) (i) element(0,1) (i) element(1,2) (i) element(2,5) 0