Code zusammenführen und vereinfachen
-
Hallo,
ich habe folgenden Code den ich gerne zusammenführen möchte. Die displayInfo Methode soll also mit in die printInfo Methode.
double displayInfo (char* InterfaceName, struct wireless_info* Info) { // Display the currently used/set bit-rate if (Info->has_bitrate) { return Info->bitrate.value / MEGA; } } double printInfo (char* InterfaceName) { struct wireless_info Info; if (getInterfaceInfo (InterfaceName, &Info) < 0) { fprintf (stderr, "%-8.8s no wireless extensions.\n\n", InterfaceName); return -1; } return displayInfo (InterfaceName, &Info); }
Ich habe es folgendermaßen probiert:
double printInfo (char* InterfaceName) { struct wireless_info Info; if (getInterfaceInfo (InterfaceName, &Info) < 0) { fprintf (stderr, "%-8.8s no wireless extensions.\n\n", InterfaceName); return -1; } if (Info->has_bitrate) { //<--- return Info->bitrate.value / MEGA; //<--- } }
Bekommen dann aber die Fehlermeldung, vorher lief es fehlerfrei durch:
In function
double printInfo(char*)': error: base operand of
->' has non-pointer typewireless_info' error: base operand of
->' has non-pointer type `wireless_info'Wer kann mir helfen? Was habe ich falsch gemacht???
Vielen Dank!
-
Info ist ja kein Pointer, also
if (Info.has_bitrate) { //<--- return Info.bitrate.value / MEGA; //<---
Abgesehen davon:
Warum fprintf und keine Streams ?
Das struct vor der Deklaration einer Instanz von wireless_info kannst du in C++ weglassen.
oder soll das C sein?
-
Danke schön, jetzt geht's!
-
was ist mit der funktion displayInfo(), wenn Info->hasBitrate==false ist? dann gibt die funktion ja gar keinen wert zurück