Цитата(gazpar @ Nov 26 2017, 19:44)

. . . Попробуйте изменить значение N в рантайме (в цикле N присвоить значение индекса/итерации цикла)--> будет ошибка.
. . .
const с инициализацией размещается или во флеш, или реализуется оптимизатором как присваивание (если использование "разовое").Поэтому, если у компилятора есть совесть, до рантайма дойти не должно. Должна быть ошибка компилятора.
Цитата(Grizzzly @ Nov 26 2017, 19:51)

. . . . Почему тогда приводятся во всех книгах/примерах определения размеров массивов через define? . . .
Это не "определение", это "тупо подстановка" текста-цифров.
Через #define - тк далее в коде это значение может еще много-где понадобиться (и измениться),
а это удобно делать "централизованно" из одного #define.
------
А для "определения" - sizeof(). И такая конструкция вроде прокатывает:
Код
int a, b; float c; char ms[100];
const int bf_size = sizeof(a) + sizeof(b) + sizeof(ms);