我正在编译-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},
};
// ...
}