Funktions-Pointer

Gast #2970879
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren