Каково использование значения const в c, если оно не было инициализировано при объявлении?

Возможный дубликат:
const в C vs const в С++

У меня есть следующий код

В C

int main()
{
    const int k;//allowed but garbage and later we can't modify
    printf("%d",k);
}

о/р = мусоропровод

В С++

int main()
{
    const int k; //not allowed from here itself
    printf("%d",k);
}

o/p-время компиляции

У меня есть сомнения в том, что использование const в C, если оно allowed объявить его с помощью initialization, но после него declaration мы не можем initialize его.

Но c++ хорошо, что мы не можем объявить значение const без initialization.

Существует ли использование переменной k в C или бесполезно, если мы объявляем ее только как более позднюю модификацию.

Ответ 1

Он не имеет смысла сам по себе.

Однако существуют специальные расширения для компилятора, где это снова становится полезным. C Compilers for embedded platforms, например, часто имеют расширения, которые позволяют указать переменную фиксированный адрес или как псевдоним для порта ввода-вывода с отображением памяти.

const будет указывать/обеспечивать, чтобы вы only read с этого адреса, например a memory mapped input port.