Hallo Gemeinde, ich glaub ich sehe den Wald vor lauter Bäumen nicht. Im Moment bin ich dabei mich mit Funktions-Pointern zu beschäftigen. Dabei stolpere ich über ein Problem, wenn ich einen Funktions-Pointer als Argument in einer Funktion übergeben möchte. Übergebe ich den Pointer auf eine Funktion als alleiniges Argument, dann läuft alles so, wie ich es mir wünsche (siehe: function1). Übergebe ich jedoch neben dem Pointer auf eine Funktion ein weiteres Argument, dann bekomme ich eine Fehlermeldung vom Compiler (siehe: function2). "Error 2 expected ')' before numeric constant" Da ich mit meinem Latein am Ende bin, hoffe ich, Ihr könnt mir ein wenig auf die Sprünge helfen. ######################################################################## #include <stdio.h> //Typ-Definition eines Funktionspointers typedef void (* FKTPTR) (void); //Variablen FKTPTR funktionsPtr; uint8_t wert; //Testfunktion für die Übergabe void test(void) { } //Funktion nur mit Funktionspointer als Argument void function1(FKTPTR fctptr) { //Parameter an Variablen übergeben funktionsPtr = fctptr; } //Funktion mit Funktionspointer + 2. Wert als Argument void function2(FKTPTR fctptr, uint8_t value) { //Parameter an Variablen übergeben funktionsPtr = fctptr; wert = value; } int main(void) { //Funktionsaufruf nur mit Funktions-Pointer void function1(test); //keine Beanstandung durch den Compiler //Funktionsaufruf mit Funktions-Pointer + 2. Parameter void function2(test, 0x08); //Compilermeldung: "Error 2 expected ')' before numeric constant" while(1); } ######################################################################## Besten Dank und Grüße Muetze
lass mal das 'void' vor den Aufrufen der Funktionen funktion1 und funktion2 weg. Sonst denkt der Compiler, das seien neue (lokale) Funktionsdeklarationen
Moin katastrophenheinz, sollte es wirklich so einfach sein ;-) Was für ein blöder Fehler von mir! Besten Dank.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.