Является ли «const int x = get ();» допустимым в C? Можем ли мы присвоить возвращаемое значение функции константе при объявлении?
Известный участник"R.."
на этом форуме явно сказали мне это 2 дня назад:
Initializers for objects of static storage duration must be constant expressions. The result of a function call is not a constant expression.
Он говорил о глобальных переменных. Но я не уверен, что происходит с константами, объявленными внутриmain()
функция, или любая функция в этом отношении. Хотя я интуитивно чувствую, что даже для констант, объявленных в функциях, следующая программа получена из следующей ссылки с ее предположительноcorrect
ответ, смущает меня.
http://www.indiabix.com/c-programming/const/discussion-546
#include
int get();
int main()
{
const int x = get();
printf("%d", x);
return 0;
}
int get()
{
return 20;
}
Так может кто-нибудь объяснить, является ли этов Си допустимо присвоить возвращаемое значение константе?