私はc99で正常にコンパイルされる単純なCプログラムを持っていますが、ANSIでは次のように文句を言います。
初期化子の周りに中括弧がありません
問題のある行は次のとおりです。
int myarr[3][3]={0};
ANSI Cが不満を言っているのはなぜですか?{0}の周りに{}を追加するという投稿を見ましたが、それは私には意味がありません...
(重要な場合に備えて、CentOSでコンパイルしています)
私はc99で正常にコンパイルされる単純なCプログラムを持っていますが、ANSIでは次のように文句を言います。
初期化子の周りに中括弧がありません
問題のある行は次のとおりです。
int myarr[3][3]={0};
ANSI Cが不満を言っているのはなぜですか?{0}の周りに{}を追加するという投稿を見ましたが、それは私には意味がありません...
(重要な場合に備えて、CentOSでコンパイルしています)
int myarr[3][3]={0};
これは完全に有効なCです。この場合、警告はコンパイラからの単なる表示です。
警告を取り除きたい場合は、次のことができます。
int myarr[3][3]={{0}};
または、オプションで使用して-Wno-missing-braces
いる場合は追加します。gcc
-Wall
多次元配列を初期化する場合は、厳密に(ANSI Cの下で)中括弧を追加する必要があります。たとえば、各要素を特定の値に初期化する場合、次のようにします。
int myarr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};