cdk
20.07.2019, 08:48
Hallo Leute,
habe eine Variable in loop() definiert und bekomme dafür eine Compiler-Warnung. So sieht der auf's Problem reduzierte Code aus:
void loop() {
int button;
unsigned long browse;
// browse = 0;
button = GetButton();
if (button) { // Taster gedrückt?
switch (button) {
case KUP:
browse = millis() + 8001;
// Vorblättern
break;
case KDOWN:
browse = millis() + 8000;
// Zurückblättern
break;
}
}
}
Die resultierende Warnung:
C:\Eigene Dateien\Arduino\Eventlogger\Eventlogger.ino: In function 'void loop()':
C:\Eigene Dateien\Arduino\Eventlogger\Eventlogger.ino:7:16: warning: variable 'browse' set but not used [-Wunused-but-set-variable]
unsigned long browse;
^
WIESO? Das mag ja nicht funktionsrelevant sein, aber ich will schon gerne einen Code ohne Warnungen produzieren!
'browse' soll für einen Timeout (8s) verwendet werden, nach dessen Ablauf die Anzeige wieder auf Standardtext zurückgeschaltet wird. Eigentlich soll dieser Timeout für beide case-Bedingungen gleich sein (8000) - daß ich oben stattdessen 8001 verwende ist auch nur ein vergeblicher Versuch diese Warnung zu vermeiden. Ebenso wie die wieder auskommentierte Zeile 'browse = 0;' ...
Wenn ich die Variable 'browse' global deklariere geht's, aber da gehört sie nunmal nicht hin. Zudem würde ich gerne verstehen was sich der Compiler dabei denkt wenn er sowas behauptet :mrgreen:
Gruß, Dieter
habe eine Variable in loop() definiert und bekomme dafür eine Compiler-Warnung. So sieht der auf's Problem reduzierte Code aus:
void loop() {
int button;
unsigned long browse;
// browse = 0;
button = GetButton();
if (button) { // Taster gedrückt?
switch (button) {
case KUP:
browse = millis() + 8001;
// Vorblättern
break;
case KDOWN:
browse = millis() + 8000;
// Zurückblättern
break;
}
}
}
Die resultierende Warnung:
C:\Eigene Dateien\Arduino\Eventlogger\Eventlogger.ino: In function 'void loop()':
C:\Eigene Dateien\Arduino\Eventlogger\Eventlogger.ino:7:16: warning: variable 'browse' set but not used [-Wunused-but-set-variable]
unsigned long browse;
^
WIESO? Das mag ja nicht funktionsrelevant sein, aber ich will schon gerne einen Code ohne Warnungen produzieren!
'browse' soll für einen Timeout (8s) verwendet werden, nach dessen Ablauf die Anzeige wieder auf Standardtext zurückgeschaltet wird. Eigentlich soll dieser Timeout für beide case-Bedingungen gleich sein (8000) - daß ich oben stattdessen 8001 verwende ist auch nur ein vergeblicher Versuch diese Warnung zu vermeiden. Ebenso wie die wieder auskommentierte Zeile 'browse = 0;' ...
Wenn ich die Variable 'browse' global deklariere geht's, aber da gehört sie nunmal nicht hin. Zudem würde ich gerne verstehen was sich der Compiler dabei denkt wenn er sowas behauptet :mrgreen:
Gruß, Dieter