Подтвердить что ты не робот

Void cast of argc и argv

Я смотрю кусок кода на С++, и первая строка в главной функции привлекла мое внимание:

int main(int argc, const char* argv[]) {
    (void)argc; (void)argv;
     ...
}

Помимо этой строки argc и argv вообще не используются. Почему автор делает пустоту? Могло ли это остановить компилятор от жалобы на неиспользуемые переменные?

4b9b3361

Ответ 1

"Нельзя ли заставить компилятор жаловаться на неиспользуемые переменные?"

да

Ответ 2

Да, это точно, чтобы сообщить компилятору не жаловаться на неиспользуемые переменные.

Ответ 3

Если вы установите параметр -Werror, компилятор сделает все предупреждения в ошибки, прекратив компиляцию. Это хорошая практика, установленная -Wall -Werror для проверки всех несоответствий.

Ответ 4

Да, это значит, что компилятор не должен жаловаться на неиспользуемые переменные. В этом случае лучший способ:

int main(int, char**) {
    ...
}

Выход из параметров unnamed сообщает компилятору, что они там, но не используются.