expression: pointer-to-funct typ error
-
hallo,
void funct (unsigned char *pchar) struct Struct2 { void *ptr; //... }; typedef struct { struct Struct2 *p //... }Struct1; Struct1 *pstruct; unsigned char *pchar; pstruct->p->ptr = funct(pchar);
leider bekomm ich stets die Fehlermeldung: "expression must have (pointer-to-) function typ...
wie muss ich es anders schreiben?
gruß
patrick
-
hier noch mal den kompletten code - habe zwei zweilen vergessen:
short funct (unsigned char *pchar);
struct Struct2 { void * ptr; }; typedef struct { struct Struct2 * p; } Struct1;
main function:
Struct1 *pstruct; unsigned char *pchar; (short) (*pstruct->p->ptr)(unsigned char *pchar) = funct; if((pstruct->p->ptr)(pchar) != 0);
zuerst möchte ich gern einen funktionspointer ptr auf die funktion funct
erstellen. Anschließend möchte ich gern die funktion funct aufrufen mit
dem Übergabewert pchar - der Return-Wert wird in der if-Anweisung
ausgeführt.Allerdings sind hier noch fehler vorhanden.
gruß
patrick
-
Hier ist ein Beispiel für Funktionspointer:
-
Oder auf den Punkt gebracht:
#include "stdlib.h" short funct(unsigned char *pchar); short (*FP)(unsigned char*); int main() { FP=&funct; unsigned char c='X'; short sh=FP(&c); return 0; } short funct(unsigned char *pchar) { return (short)*pchar; }