définition de type d'un pointeur de fonction type

Je veux déclarer un pointeur de type point à une fonction, j'ai donc essayer:

typedef void (*print)(void); fonctionne parfaitement

void (*print)(void); p est un ponter variable , pas un type.

typedef (void) (*print)(void); erreur escomptés identificateur ou ‘(’ avant ‘void’

typedef void (*)(void) Print;

d'erreur: ‘=’, ‘,’, ‘;’, ‘asm " ou "_ attribut _ "avant " Imprimer".

Ma question est:

  1. Dois-je utiliser typedef de déclarer un pointeur de fonction type ?
  2. Pourquoi typedef (void) (*print)(void); est le problème ? ce () signifie ici?
  3. Pourquoi je ne peux pas écrire de cette façon:typedef void (*)(void) Print ?
Vous n'avez pas besoin typedef pour déclarer un pointeur de fonction typer.
Comment faire ? post l'idée ,s'il vous plaît.
Toutes vos questions peuvent très bien être répondu avec "parce que la langue de créateurs ont décidé de cette façon"
Dans une réponse à une autre question, j'ai essayé d'expliquer comment déclarer un pointeur de fonction. Voir stackoverflow.com/a/6905987/396551
Merci .

OriginalL'auteur Lidong Guo | 2013-09-05