2017-02-17 50 views
-3

4.7.0をgccのために、GCCの4.4.xからのアップグレードした後、私が見始めましたgcc 4.4.xで私は-std=c99オプションを使用してみましたが、動作しませんでした。次のスニペットが機能する可能性があります。初期化子の要素計算可能ではない

prm_arr[0] = prm.field1; 
prm_arr[1] = prm.field2; 
prm_arr[2] = prm.field3; 

このエラーを引き起こす原因は何ですか?

+2

[MCVE](http://stackoverflow.com/help/mcve)を投稿してください。特に、このコードがファイルスコープであるかブロックスコープであるか、そして 'prm.field1'などが何であるかは重要です。 –

答えて

0

C89では、初期化リストはコンパイル時に既知の定数式でなければなりません。 (ただし、C99でも動作します)。したがって、あなたがしていることは正しい方法ではありません。あなたが投稿した2番目のスニペットは確実に動作します。

+0

非静的変数の初期化子は、C99以降は定数式である必要はなく、OPは '-std = c99'を試したと言います。 –

+0

OPが何か間違っていなければなりません。 @ M.M – Jarvis

関連する問題