Co właściwie robi (void) var?
Rozważ następującemain()
:
int main(int argc, char *argv[])
{
return (0);
}
Po kompilacji zcc -Wall -Wextra
, generowane są ostrzeżenia, że „nieużywany parametr”.
Kiedy nie muszę używać parametru w funkcji (na przykład w a.)funkcja obsługi sygnału to nie wykorzystuje jejint
parametr), jestem przyzwyczajony do robienia następujących czynności:
int main(int argc, char *argv[])
{
(void)argc;
(void)argv;
return (0);
}
(W tym celumain()
, Czasami widzę, jak robią to inni ludzie:argv = argv - argc + argc
)
Aleco robi(void)var
tak właściwierobić?
Rozumiem, że(void)
jest obsadą, więc chyba odrzucam zmienną? Co robivar;
line (bez obsady) zrobić? Czy to puste zadanie, pusty wyraz?
Chciałbym zrozumieć, co tak naprawdę się dzieje.