PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] warnungen unused parameter in „RP6Control_I2CMasterLib.c“ und "RP6I2CmasterTWI.c"



inka
25.11.2014, 07:24
hallo allerseits,

beim compilieren - auch von unbearbeiteten beispielen für die m32 - kommen folgende warnungen:


../../RP6Lib/RP6common/RP6I2CmasterTWI.c||In function ‘I2CTWI_requestedDataReady_DUMMY’:|
../../RP6Lib/RP6common/RP6I2CmasterTWI.c|55|warning: unused parameter ‘requestID’|
../../RP6Lib/RP6common/RP6I2CmasterTWI.c||In function ‘I2CTWI_transmissionError_DUMMY’:|
../../RP6Lib/RP6common/RP6I2CmasterTWI.c|62|warning: unused parameter ‘requestID’|
../../RP6Lib/RP6control/RP6Control_I2CMasterLib.c||In function ‘IRCOMM_RC5dataReady_DUMMY’:|
../../RP6Lib/RP6control/RP6Control_I2CMasterLib.c|62|warning: unused parameter ‘rc5data’|
../../RP6Lib/RP6control/RP6Control_I2CMasterLib.c||In function ‘BATTERY_lowVoltage_DUMMY’:|
../../RP6Lib/RP6control/RP6Control_I2CMasterLib.c|93|warning: unused parameter ‘isVoltageLow’|
||=== Erstellen beendet: 0 Fehler, 4 Warnungen===|

das ist schon eine ganze weile bei mir so und es nervt zunehmend, aber genereles abschalten von warnungen ist denke ich nicht so gut (es könnte auch mal "echte" warnungen geben)...

Kann man die gründe für diese konkreten warnungen irgendwie beheben?

Peter(TOO)
26.11.2014, 01:48
Hallo inka,

Das Urproblem kommt meist aus Kompatibilitätsgründen. Damit der Aufruf passt, definiert man einen Parameter, welcher in der Funktion nicht benötigt wird:


int f1(int a, int b)
{
return a;
}

Sollte unused Parameter b in f1 ergeben.
Ich löse das Problem meistens so:


int f1(int a, int b)
{
b = b; // Warnung unterdrücken

return a;
}

Der Compiler denkt, das b verwendet wird.

b= b;
sollte keinen Code erzeugen, bzw. er wird wegoptimiert.
Gleichzeitig wird mit dem Kommentar auch für andere dokumentiert, dass b nicht einfach vergessen wurde.

MfG Peter(TOO)

inka
26.11.2014, 07:45
danke Peter(TOO),

für die erklärung und die abhilfe. Hat super finktioniert...