C言語ユーザーです。初心者です。
プログラムを通して(すなわち異なる関数間で)同一の変数を用いる際にはヘッダー部分にグローバル変数を定義するのが一般的だと思います。すなわち、
C
1#include <stdio.h> 2const double t1=1.0; 3const double t2=2.0; 4 5int main(void){ 6 7 return(0); 8 9} 10
とすれば、t1,t2がこのファイルの中であればどこでも使えますね。しかし、
C
1#include <stdio.h> 2const double t1=1.0; 3const double t2=2.0*t1; 4 5int main(void){ 6 7 return(0); 8 9} 10
というように、グローバル変数に値を代入する際に、他のグローバル変数を用いると次のようなコンパイルエラーが生じます。
icc でコンパイルした場合
error: expression must have a constant value
double t2=1.0*t1;
gcc でコンパイルした場合
error: initializer element is not constant
これはなぜでしょうか。また、これを解決するためにはどうしたらよいでしょうか。ヘッダー部分で複数の変数を定義しておきたい私にとって、ヘッダー部分でグローバル変数をグローバル変数に代入できないというのはとてもつらいです。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/08 06:58
2017/09/08 10:07 編集
2017/09/13 03:02