Почему меня должен беспокоить «необязательный формальный параметр»? - PullRequest
0 голосов
/ 16 марта 2012

В чем причина выдачи «неформального параметра» предупреждение? В существующем сообщении SO это предупреждение поясняется как полезное для привлечения внимания программиста к функции (в случае, если он забыл выполнить некоторые операции с параметром), а также для обслуживания кода (для сигнализации будущим разработчикам, чтобы этот параметр не был опущен, но был намеренно пропущен). Помимо проблем со стилем, почему программист хочет получить предупреждение от неиспользуемых параметров? Копируются ли такие параметры, если переданы по значению?

void myFunction(int param) {
}

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

Для предотвращения возможных отвлекающих факторов (забыв использовать параметр) и стремиться к более понятному коду, достаточно причин.

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

1 голос
/ 16 марта 2012

Хотя это не указано, я бы поспорил, что пропуск имени параметра в определении функции не изменит никакого двоичного кода.

Модули компиляции, имеющие только объявление доступной функции, не будут знать,скопировать параметр.Другие модули компиляции могут применить обычную оптимизацию к вызову функции, и любой оптимизатор, стоящий любой соли, обнаружит, что параметр мертв в самом начале функции.

Таким образом, я не буду беспокоиться о производительности здесь.Чистая причина - читабельность.

...