Wie typedef funktioniert für Funktionszeiger

Ich glaube, ich kann leiden die gefürchtete "zufälligen Programmierer" Krankheit, zumindest, wenn es um die Typdefinitionen und Funktionszeigern. Also ich habe experimentiert mit allen Arten von Kombinationen von diesen zu analysieren, die Ergebnisse, basierend auf die Ausgabe, die ich bekomme.

Aber als ich weiter versuchen, verschiedene Kombinationen, statt zu analysieren, die Ergebnisse bin ich jetzt nur verloren im Prozess.

Ich hoffe, Sie Jungs werden mir helfen herauszufinden, dieses Durcheinander.

Ersten code-Beispiel

typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }

print *pr;
pr = &do_something;
pr(); //Hello World

Zweiten code-Beispiel

typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }

print *pr;
pr = do_something;
pr(); //Hello World

Wie die obigen code-Beispiele funktionieren, es ist, als ob '&' hat keine Auswirkung auf die Funktion Namen

Dritten code-Beispiel

typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }

print pr;
pr = do_something; //compile error
pr = &do_something; //compile error
pr();

Ich hatte gehofft, eine der oben genannten Aufgaben, hier zu arbeiten, aber verdammt! Ich verstehe wirklich nicht, Funktionszeigern (und vielleicht typedef zu).

  • Dies kann helfen, stackoverflow.com/questions/4298654/...
  • Hmm... ich denke, sollten Sie sich eine "Expert-C-Programmierung' es explians C var-Regeln definieren. Ich werde versuchen, es zu finden für Sie online
  • einfach die google-Expert-C-Programmierung, die erste ist das Buch. Suche 'Wie eine Erklärung Ist Gebildet" und ich denke du wirst die Antwort
InformationsquelleAutor Raja | 2012-02-20
Schreibe einen Kommentar