Sida 1 av 1

C – hur tolkar jag detta skrivsätt?

Postat: 02 feb 2013, 18:20
av Johnny Rosenberg
Har studerat lite exempelkod för att komma igång med mitt lilla ”projekt” (det går sakta framåt, något långsammare än normal snigelfart). Eftersom jag inte bara vill kopiera andras mästerverk (nåja…) rakt av, med mindre än att jag förstår hur de fungerar, undrar jag lite över en rad i ett exempel som man kan hitta här.

Skrivsättet förekommer på flera ställen, men rad 184 är enkel att hitta; fjärde raden från slutet. Det är tredje raden i följande funktion:

Kod: Markera allt

void error_callback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
 {
         (void)decoder, (void)client_data;
 
         fprintf(stderr, "Got error callback: %s\n", FLAC__StreamDecoderErrorStatusString[status]);
 }
Det jag funderar på är alltså

Kod: Markera allt

(void)decoder, (void)client_data;
Jag förstår inte riktigt vad raden gör och varför den behövs. Känner mig dum, och det är ju aldrig bra, i alla fall inte för självförtroendet…

Jag läste C runt 1986 och jag är medveten om att det hänt en hel del sedan dess.
Ser ut som en typomvandling, men till vilken nytta?

Re: C – hur tolkar jag detta skrivsätt?

Postat: 02 feb 2013, 19:04
av Christian Johansson
Man brukar skriva så för funktionsparametrar som inte används, annars klagar t.ex. lint på att det finns parametrar som inte används om man kör lint för att göra automatisk analys av koden.

([Edit] Man kanske t.o.m. får en kompilatorvarning om oanvända parametrar om man inte gör så, lite osäker på det.)

Re: C – hur tolkar jag detta skrivsätt?

Postat: 02 feb 2013, 19:15
av Johnny Rosenberg
Christian Johansson skrev:Man brukar skriva så för funktionsparametrar som inte används, annars klagar t.ex. lint på att det finns parametrar som inte används om man kör lint för att göra automatisk analys av koden.

([Edit] Man kanske t.o.m. får en kompilatorvarning om oanvända parametrar om man inte gör så, lite osäker på det.)
Okej, det förklarar saken. Bra för tydligheten också, om den som läser förstår vad som menas… vilket jag nu gör! ;D