Вы используете два вида петель. Вы можете выбрать нормальный цикл для или цикл для ... из :
// For loop
for (i = 0; i < elms.length; i++) {
sum += elmt[i];
}
// For...of loop
for (let e of elmt) {
sum += e;
}
Но, более чистый способ сделать это с помощью reduce
:
var sum = elms.reduce((a, c) => a + c, 0);
var avg = sum / elms.length;
Я не уверен, каково корректное предупреждение, но как только Вы нашли его, можно измениться, это - расположение со следующим (использующий 'формат' в качестве примера):
#pragma GCC diagnostic error "-Wformat"
Или поскольку strager указывает:
gcc -Werror=format ...
Редактирование: я только что проверил gcc источник на это, и это определенное предупреждение не может быть отключено через флаги командной строки.
Похоже, есть множество других предупреждений о том, что вы не хотите превращаться в ошибки (используя флаг -Werror). В целом, это хорошая практика, чтобы исправить все предупреждения. Использование -Werror вызывает это.
Можно использовать -Werror
флаг компилятора для превращения всех или некоторых предупреждений в ошибки.
-Werror = specific-warning
превратит указанное -Wspecific-warning
в ошибку в GCC 4.3.x или новее. В 4.1.2 работает только -Ошибка-неявное-объявление-функции
. Обратите внимание на дефис вместо знака равенства - он работает только в этом конкретном случае и ни в каком другом. Это одно из наиболее серьезных распространенных предупреждений, и его определенно удобно превратить в ошибку.
Кроме того, более старые версии GCC, похоже, предоставляют только кувалду -Werror
для создания каждого последнего предупреждения. ошибка.
Вы можете использовать -fdiagnostics-show-option, чтобы увидеть опцию -W, которая применяется к конкретному предупреждению.
К сожалению, в этом случае нет конкретной опции, закрывающей это предупреждение.
Похоже, это будет лучше в gcc-4.5.