1. ホーム
  2. C

initializer element is not constant "というエラーが表示されるのですが?

2022-02-07 03:54:32

次のコードを見てください。

#include <stdio.h>
int a = 1;
int b = 2;
int c = a+b;

int main() {
    printf("c is %d\n", c);
    return 0;
}





gcc -o test test.c エラーでコンパイル:イニシャライザ要素が定数でない。


-----

理由 グローバル変数cの値はコンパイル時に決定できないので、実行時に決定する必要がある(コンパイルの原則。)

回避策

#include <stdio.h>
int a = 1;
int b = 2;
int c; //only declare

int main() {
	c = a + b; //assign value in main function
	printf("c is %d\n", c);
	return 0;
}