Каково использование значения 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.