Schiri schrieb:
> Liegt es doch an dem
> Makro, den ich der Funktion debounce als Parameter übergebe? Fällt sonst
> etwas ins Auge?
Was mir ins Auge fällt, das ist das da scheinbar wieder mal banale C
Grundlagen fehlen. Du 'übergibst kein Makro'. Beim AUfruf einer FUnktion
werden die Funktionsargumente ausgewertet
und die Funktion kriegt das Ausgerechnete und speichert sich dieses
Ergebnis in ihrer lokalen Variablen, die du in der Argumentliste benannt
hast
1 | void foo( int jkl )
|
2 | {
|
3 | // jkl hat hier den Wert 12
|
4 | }
|
daran ändert sich auch nichts, wenn du die Textersetzung des
Präprozessors in Anspruch nimmst, um anstelle der Berechnung direkt beim
Aufruf
1 | #define ARG 8 + 5
|
2 |
|
3 |
|
4 | ...
|
5 | foo( ARG );
|
da eine Bezeichnung dafür künstlich einzuführen. Beim AUfrufer wird der
zum Zeitpunkt des Aufrus vorliegende Wert ermittelt und dieser Wert an
die FUnktion übergeben.