このフォーラムの非常に評判の良い寄稿者"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<stdio.h>
int get();
int main()
{
const int x = get();
printf("%d", x);
return 0;
}
int get()
{
return 20;
}
それでは、戻り値を定数に代入することがCで有効かどうかを誰かが説明できますか?