Является ли «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;
}

Так может кто-нибудь объяснить, является ли этов Си допустимо присвоить возвращаемое значение константе?

Ответы на вопрос(3)

Ваш ответ на вопрос