preguntar acerca de function-pointers

12
réponses

Comment fonctionnent les pointeurs de fonction en C?

J'ai eu une certaine expérience dernièrement avec des pointeurs de fonction dans C. Donc, en continuant avec la tradition de répondre à vos propres questions, j'ai décidé de faire un petit résumé des bases mêmes, pour ceux qui ont besoin d'une plon …
demandé sur 1970-01-01 00:33:29
11
réponses

Comment obtenir le nom de la fonction à partir du pointeur de la fonction en C?

Comment obtenir le nom de la fonction à partir du pointeur de la fonction en C? Edit: le cas réel est: j'écris un module du noyau linux et j'appelle des fonctions du noyau. Certaines de ces fonctions sont des pointeurs et je veux inspecter le code d …
demandé sur 1970-01-01 00:33:28
6
réponses

Pointeur de fonction c++ (membre de la classe) vers une fonction membre non statique

class Foo { public: Foo() { do_something = &Foo::func_x; } int (Foo::*do_something)(int); // function pointer to class member function void setFunc(bool e) { do_something = e ? &Foo::func_x : &Foo::func_y; } private: …
demandé sur 1970-01-01 00:33:29
10
réponses

Quelle est l’adresse d’une fonction dans un programme C++?

Comme la fonction est l'ensemble d'instructions stockées dans un bloc contigu de mémoire. Et l'adresse d'une fonction (point d'entrée) est l'adresse de la première instruction de la fonction. (à ma connaissance) Et on peut donc dire que l'adresse …
demandé sur 1970-01-01 00:33:35
1
réponses

Pourquoi ‘X x; x();’ est-il autorisé, quand ‘ X ‘ définit une conversion en pointeur de fonction, mais pas, quand il définit une conversion en foncteur?

void f(int){} typedef void (*f_ptr)(int); struct Functor{ void operator()(int){} }; struct X{ operator f_ptr(){ return f; } }; struct Y{ operator Functor(){ return Functor(); } }; int main(){ X x; Y y; x(5); // works ?! y(5); // doesn …
demandé sur 1970-01-01 00:33:32
6
réponses

Opérateur de Conversion C++ pour la conversion en pointeur de fonction

Je me suis écrasé contre une idée assez simple dans ma tête, mais je n'arrive pas à comprendre comment implémenter en C++. Normalement, je peux déclarer une classe avec un opérateur de conversion, comme dans cet exemple simple: class Foo { private: …
demandé sur 1970-01-01 00:33:31
2
réponses

Quelle est la différence entre le délégué en C# et le pointeur de fonction en C++? [dupliquer]

Doublon Possible:y a-t-il des pointeurs de fonction en c#? Je suis intéressé à trouver la différence entre délégué en C# et pointeur de fonction en C++. ... …
demandé sur 1970-01-01 00:33:31
2
réponses

Comment affecter une fonction, retournée par une autre fonction, à une variable de fonction? Le résultat plutôt que la fonction génératrice elle-même

Une fonction retourne une fonction anonyme. Je voudrais affecter le résultat à une variable. Cependant le compilateur pense que j'essaie d'attribuer la fonction et non le résultat de la fonction. Comment puis-je résoudre ce problème? program Project …
demandé sur 1970-01-01 00:33:34
2
réponses

Est l’astérisque en option lors de l’appel d’un pointeur de fonction?

je ne pouvais pas trouver une réponse à ce n'importe où. Je viens de lire K&R et vu l'appel d'un pointeur de fonction comme ceci: (*ptr)(arg1, arg2); je me souviens très bien, cependant, d'avoir vu quelqu'un utiliser comme ceci: ptr(arg1, arg …
demandé sur 1970-01-01 00:33:34
3
réponses

Python, Comment passer un argument à un paramètre de pointeur de fonction?

je viens juste de commencer à apprendre Python et j'ai découvert que je peux passer une fonction comme paramètre d'une autre fonction. Maintenant, si je l'appelle foo(bar()) il ne va pas passer comme un pointeur de fonction, mais la valeur de retour …
demandé sur 1970-01-01 00:33:32