でコンパイルする-Wdeclaration-after-statement
と、次の警告が表示されます。
ISO C90 forbids mixed declarations and code
これは、配列を埋める前に特定の操作を実行する必要があるためです。
cars
この警告を回避できるように、初期化して宣言するための良い方法または代替手段は何でしょうか。
問題のコードは次のようになります。
int my_func() {
typedef struct Car_ {
char *brand;
int amount;
int color;
} Car;
int fixed = 0;
int total1 = getAmountBase(brand1);
int total2 = getAmountSub(brand2);
int total3 = getAmountBase(brand3);
int total4 = getAmountSub(brand4);
int grand = getAmountBase(brand7);
// more operations...
if (grand7 != NULL) {
grand7 = calcBase(grand7, total6);
fixed = addGrand(grand7);
}
Car cars[] = { // warning here.
{"brand1", total1, RED},
{"brand2", total2, RED},
{"brand3", total3, RED},
{"brand4", total4, RED},
{"brand7", fixed, RED},
};
// ...
}