Gast
#2970879
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