Кто-нибудь знает, зачем нужна выделенная строчка? Бывают случаи, когда приходится писать бессмысленный код, чтобы компилятор не выдавал предупреждений, но про неиспользуемые аргументы функции он вроде и так не ругается, даже с -Wall. Так зачем?
signal(SIGINT, handle_sigint);
...
static void handle_sigint(int sig)
{
(void)sig;
error("Interrupted by SIGINT\n");
...
exit(2);
}
Оригинал этой записи в личном блоге.
Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме.
Tags:
no subject
no subject
Строчка вполне могла остаться от коммита 2000го (допустим) года. Она сейчас никому не мешает и про неё не вспоминают.
Что это за проект?
no subject
Программа сугубо линуксовая, ибо намертво привязана к его DVB API.
no subject
no subject
Никакого кода этот оператор не генерирует. Единственный возможный смысл, который я вижу - формально использовать переменную, чтобы компилятор не ругался на её неиспользуемость.
no subject
no subject
Но у товарищей в Makefile явно указан gcc, и никаких pedantic нету. На самом деле, у них даже -Wall нету, это я сам добавил по привычке.
no subject
no subject
no subject
no subject
no subject
Если бы он не использовал его случайно, то получил бы warning, а еще лучше error, с -Werror.
no subject
А какие компиляторы ругаются на неиспользуемые аргументы? У меня вот gcc c -Wall не ругается. Хотя в авторской версии Makefile даже -Wall нету.
no subject
Документация gcc запутана. В части про -Wextra написано, что -Wunused-parameter включается -Wextra только при использовании с -Wunused или -Wall. В части про -Wunused написано: "All the above -Wunused options combined", но: "In order to get a warning about an unused function parameter, you must either specify -Wextra -Wunused (note that -Wall implies -Wunused), or separately specify -Wunused-parameter."
Я так понял, что -Wunused включает -Wunused-parameter только вместе с -Wextra. Так как -Wall подразумевает -Wunused, то "-Wall -Wextra" тоже включает -Wunused-parameter.