该论坛上一位享有盛誉的撰稿人"R.."
在两天前明确告诉我:
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<stdio.h>
int get();
int main()
{
const int x = get();
printf("%d", x);
return 0;
}
int get()
{
return 20;
}
那么任何人都可以解释在 C 中将返回值分配给常量是否有效?