Ответ 1
"Нельзя ли заставить компилятор жаловаться на неиспользуемые переменные?"
да
Я смотрю кусок кода на С++, и первая строка в главной функции привлекла мое внимание:
int main(int argc, const char* argv[]) {
(void)argc; (void)argv;
...
}
Помимо этой строки argc и argv вообще не используются. Почему автор делает пустоту? Могло ли это остановить компилятор от жалобы на неиспользуемые переменные?
"Нельзя ли заставить компилятор жаловаться на неиспользуемые переменные?"
да
Да, это точно, чтобы сообщить компилятору не жаловаться на неиспользуемые переменные.
Если вы установите параметр -Werror
, компилятор сделает все предупреждения в ошибки, прекратив компиляцию. Это хорошая практика, установленная -Wall -Werror
для проверки всех несоответствий.
Да, это значит, что компилятор не должен жаловаться на неиспользуемые переменные. В этом случае лучший способ:
int main(int, char**) {
...
}
Выход из параметров unnamed сообщает компилятору, что они там, но не используются.