Peut-on appeler des fonctions à l'aide du pointeur de fonction? si oui comment?Fonctions dans C
2
A
Répondre
2
Oui, vous pouvez.
13
Oui. Exemple trivial:
// Functions that will be executed via pointer.
int add(int i, int j) { return i+j; }
int subtract(int i, int j) {return i-j; }
// Enum selects one of the functions
typedef enum {
ADD,
SUBTRACT
} OP;
// Calculate the sum or difference of two ints.
int math(int i, int j, OP op)
{
int (*func)(int i, int j); // Function pointer.
// Set the function pointer based on the specified operation.
switch (op)
{
case ADD: func = add; break;
case SUBTRACT: func = subtract; break;
default:
// Handle error
}
return (*func)(i, j); // Call the selected function.
}
+0
Greg: merci pour l'édition en surbrillance - apprenez quelque chose de nouveau tous les jours! –
1
Oui. Un exemple:
Avant le code ...
typedef int (_stdcall *FilterTypeTranslatorType) ( int TypeOfImportRecord, PMAType *PMA ); FilterTypeTranslatorType FilterTypeTranslator = {NULL};
maintenant dans le code ...
PMAType *PMA; HANDLE hFilterDll; // assume DLL loaded // Now find the address... ... FilterTypeTranslator[TheGroup] = (FilterTypeTranslatorType) GetProcAddress(hFilterDll, "FilterTypeTranslator"); ... // now call it FilterTypeTranslator(1,PMA); ...
4
Oui. Voici un good tutorial avec des exemples.
Questions connexes
- 1. Extern C fonctions dans Objective-c
- 2. Fonctions membres C++ vs fonctions libres
- 3. Liste des fonctions C++
- 4. C# fonctions de fil
- 5. Fonctions C Registre dans Windows API
- 6. C fonctions surutilisation des paramètres?
- 7. Fonctions auxiliaires dans Cocoa
- 8. C#: Fonctions récursives avec lambdas
- 9. Image Fonctions arithmétiques en C++
- 10. fonctions C# avec les données statiques
- 11. Est-il possible d'utiliser des fonctions anonymes dans C++ .NET?
- 12. Déclaration des fonctions externes Dans un cacao/Obj-C Projet
- 13. Affichage des fonctions dans c Utilisation de vi
- 14. débutant C++: fonctions virtuelles dans une classe de base
- 15. Appel de fonctions non exportées dans Win32 C++
- 16. problème C++ des fonctions mathématiques (sous Linux)
- 17. JavaScript comme des fonctions anonymes en C#
- 18. Changement d'appel pour les fonctions C++
- 19. Aide combinant deux fonctions en C++
- 20. Motif de commande sans fonctions virtuelles (C++)
- 21. Pointeurs de fonctions thread-safe en C++
- 22. C: analyse de dépendance des fonctions
- 23. C++ modèles et déclarations de fonctions externes
- 24. Surcharge de l'héritage C++ sans fonctions virtuelles
- 25. Obtention de fonctions C++ non gérées à partir de C#
- 26. Fonctions immuables en cache ou précalculées en C#/C++
- 27. Fonctions rectangle dans emacs
- 28. Fonctions d'ajustement dans R
- 29. Formchecking fonctions dans php
- 30. Fonctions génériques dans VB.NET
D'accord +1. Ouf, j'aimerais qu'ils soient aussi faciles. – TheSoftwareJedi
int (* a) (intq) { return q + 1; } cette définition fonctionne-t-elle? –
@ramu: non, cela ne fonctionne pas. –