2010-03-29 4 views
0
typedef int py_var_t (void *); 

il est utilisé comme:question rapide: expliquer typedef

py_var_t *somesymbol 
+3

Installez cdecl ++. –

+0

@Paul Tomblin: Il y a un outil qui explique les déclarations pour une langue en anglais clair, mais les gens prétendent que la langue n'est pas trop compliquée? Je ne comprendrai jamais cela;) En passant, la version en ligne de cet outil est sur http://www.cdecl.org/. Supprimez simplement le mot-clé 'typedef' pour que la déclaration fonctionne. – OregonGhost

+0

Je n'ai jamais, jamais dit que C++ n'était pas trop compliqué. C n'est pas pire que la plupart des langages, bien que la syntaxe de déclaration soit un peu suce. –

Répondre

22

Il définit py_var_t être le type d'une fonction de retour int et en prenant un vide * pointeur comme argument.

+0

+1. Bonne réponse. –

+0

+1. Réponse courte et précise. – psihodelia

10

Ce:

typedef int py_var_t (void *); 

définit le type de la fonction telle que décrite par @ milan1612. Alors ceci:

py_var_t *somesymbol; 

crée un pointeur vers une telle fonction. Vous pouvez également avoir créé le pointeur comme ceci:

int (*somesymbol)(void *); 

, mais l'utilisation de typedefs est une meilleure pratique, en particulier lorsque les types de fonctions deviennent plus compliquées.