2014-07-22 2 views

Répondre

1

Il définit func comme type de fonction qui accepte 3 entiers et renvoie un nombre entier.

Ceci est utile lorsque vous passez des fonctions en tant que rappels ou que vous placez des adresses de fonction dans des tableaux ou quelque chose comme ça.

0

Il définit un type func qui est un pointeur vers une fonction renvoyant un int et prenant 3 arguments int.

Un exemple d'utilisation serait:

typedef int (*func) (int, int, int); 

int foo(int a, int b, int c) { 
    return a + b * c; 
} 

... 

// Declare a variable of type func and make it point to foo. 
// Note that the "address of" operator (&) can be omitted when taking the 
// address of a function. 
func f = foo; 

// This will call foo with the arguments 2, 3, 4 
f(2, 3, 4); 

Un scénario plus réaliste peut-être avoir un tas de fonctions qui ont le même type de retour et de prendre le même type/nombre d'arguments, et que vous voulez appelez différentes fonctions en fonction de la valeur de certaines variables. Au lieu d'avoir un tas de if -statements ou un grand switch/case vous pouvez placer les pointeurs de fonction dans un tableau et utiliser un index pour appeler la fonction appropriée.

0

C'est le nom typedef'd. Il se lit comme: func is a pointer to a function that takes three ints and returns an int.

Vous pouvez voir plus sur ce link