Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Funktionspointer mit struktur als parameter in struktur?

  1. #1
    Registrierter Benutzer
    Registriert seit
    18.07.2007
    Beiträge
    6

    Funktionspointer mit struktur als parameter in struktur?

    Hi,

    Habt ihr eine Idee wie man folgendes Problem einigermaßen elegant lößen könnte:
    Code:
    typedef struct GlyphInfo {
        void (* removeCellInfos)(GlyphInfo *);
    } GlyphInfo;
    Der Compiler kennt GlyphInfo natürlich noch nicht, zum Zeitpunkt wo der Funktionspointer definiert wird :-/

    Danke im Voraus
    Geändert von Linuxhippy (19-08-2017 um 14:24 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.09.2005
    Beiträge
    66
    Die struct an sich kennt der Compiler schon, nur das typedef, dass dazu da ist, das struct-Keyword automatisch zu übernehmen aber noch nicht. Wenn du das explizit hinschreibst geht es:
    Code:
    void (* removeCellInfos)(struct GlyphInfo *);

  3. #3
    Registrierter Benutzer
    Registriert seit
    18.07.2007
    Beiträge
    6

    Danke!

    Super, danke

  4. #4
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Auch eine Möglichkeit wäre folgendes:
    Code:
    struct GlyphInfo;
    typedef struct GlyphInfo GlyphInfo;
    
    struct GlyphInfo {
    	void (*removeCellInfos)(GlyphInfo *);
    };
    Hierbei verwendest du dann tatsächlich das typedef im Parameter, und nicht die struct (ist aber eh äquivalent).

    Wobei gcc frisst auch das (beides mit -ansi -pedantic -Wall), weis aber net ob das so standardkonform ist:
    Code:
    typedef struct GlyphInfo GlyphInfo;
    
    struct GlyphInfo {
    	void (*removeCellInfos)(GlyphInfo *);
    };
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •