以下の例では、コンパイル時にエラーが発生します
int main() {
int x = 10; // guess this is runtime initialisation
static int y = x; //guess this is loadtime initialisation
printf("x = %d, y = %d", x, y);
}
エラー:
error: initializer element is not constant
私の理解では、これは静的およびグローバルメンバーが自動変数に対して初期化される方法に関連しています。ロード時間、ランタイム、コンパイル時の初期化の違いを知りたかったのですが、要素の値がデータセクションとスタックに格納されることと、初期化への影響についても知りたかったのです。