Comment typedef fonctionne pour les pointeurs de fonction

Je pense que je souffre peut-être de la redoutable "accidentelle programmeur" de la maladie, au moins quand il s'agit de typedefs et des pointeurs de fonction. J'ai donc été à expérimenter avec tous les types de combinaisons associant ces derniers à analyser les résultats en fonction de tous les résultats que j'obtiens.

Mais comme j'ai continué à essayer différentes combinaisons, au lieu d'analyser les résultats maintenant, je suis juste perdu dans le processus.

J'espère que vous allez m'aider à comprendre ce gâchis.

Premier exemple de code

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

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

Deuxième exemple de code

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

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

Comment faire à la fois le code ci-dessus des exemples de travail, c'est comme si "& " n'a aucun effet sur le nom de la fonction

troisième exemple de code

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();

J'espérais que l'un des ci-dessus affectations de travail ici, mais putain! Je ne comprends vraiment pas des pointeurs de fonction (et peut-être typedef trop).

Cela peut aider stackoverflow.com/questions/4298654/...
Euh... je pense que vous devriez obtenir vous-même un "Expert en Programmation C' il explians C du var définir des règles. Je vais essayer de les trouver en ligne pour vous
juste google Expert de la programmation en C, le premier est le livre. Recherche de "Comment une Déclaration Est Formé" et je pense que vous aurez la réponse

OriginalL'auteur Raja | 2012-02-20