Tag: function-pointers
Eine Funktion Zeiger ist ein Zeiger auf eine Funktion, die in einer variable gespeichert werden. Es ermöglicht eine Laufzeit-Wahl, welche Funktion ausgeführt werden.
4
Antworten
Werde ich Sie zurück zu den Grundlagen hier, aber in Lua, können Sie eine Tabelle definieren, zum Beispiel so: myTable = {} myTable [1] = 12 Drucken Sie die Tabelle auf sich selbst zurück bringt einen Zeiger
2
Antworten
Ich habe erklärt typedef void (*DoRunTimeChecks)(); Wie Speichere ich das als Feld in einer struct? Wie ordne ich Sie? Wie rufe ich die Funktion fn()? Beachten Sie, dass in C void fn() und void fn(void) sind nicht
4
Antworten
Während einige tutorials und das Lesen über Funktionszeiger ich gelernt, dass offenbar die Zuweisung eines void-Zeigers an eine Funktion Zeiger, die in ISO-C undefiniert ist, gibt es eine Möglichkeit zum beheben der Warnung, die ich erhalten während
4
Antworten
In Windows c++, die folgenden wird ein thread erstellt: CreateThread(NULL, NULL, function, parameter, NULL, &threadID); Diese laufen wird "Funktion" in einem neuen thread, und übergeben Sie diese "parameter" als void* oder LPVOID. Angenommen, ich möchte zwei Parameter
1
Antworten
Einfache Installation: Es werden n Prototypen für die Funktionen und Implementierungen der Funktionen. Es gibt einen großen array von Funktionszeigern. Jede Funktion aufgeführt, die in diesem array. Einige noch Ursache -Wunused-Funktion beim kompilieren mit gcc. Code: void
5
Antworten
Erstens, ich habe Funktionen wie diese. void func1(); void func2(); void func3(); Dann erstelle ich mir ein typedef für das array: void (*FP)(); Wenn ich Schreibe, ein normales array von Funktionszeigern, es sollte so etwas wie dieses:
12
Antworten
Ich habe die folgende situation: class A { public: A(int whichFoo); int foo1(); int foo2(); int foo3(); int callFoo(); //cals one of the foo's depending on the value of whichFoo }; In meiner aktuellen Implementierung, die ich
3
Antworten
Ich versuche mich zu übergeben, eine Funktion Zeiger in einem Konstruktor einer Klasse. Jedoch, wenn ich versuche, den code zu kompilieren, erhalte ich eine Fehlermeldung. Der code und Fehler sind : quickfind.h #ifndef QUICKFIND_H #define QUICKFIND_H #endif
3
Antworten
Habe ich ein eigenartiges problem. Es könnte am besten sein, nur Sie zeigen das, was ich versuche zu tun, und dann erklären Sie es. typedef void functionPointerType ( struct_A * sA ); typedef struct { functionPointerType **
3
Antworten
Die Frage Habe ich eine Reihe von C++ - Funktionen void f(), R g(T a), S h(U a, V b) und so weiter. Ich möchte schreiben, eine Vorlage-Funktion, die akzeptiert f, g, h und so auf als
3
Antworten
Ich bin mit luabind als mein lua in C++ - wrapper. Luabind bietet eine Methode, um meine eigenen callback-Funktion zum behandeln von Ausnahmen, die ausgelöst durch lua, set_pcall_callback(). Also ich umschrieben ein Beispiel aus der Dokumentation, die
6
Antworten
Ich vermute, dass dies unmöglich ist, aber dachte, ich würde bitten. Sagen wir ich habe eine Klasse mit einer Methode: class A { public: void b(int c); }; Kann ich einen Zeiger auf member-Funktion: void (A::*ptr)(int) =
2
Antworten
Nun bin ich versuche zu boost bind & mem_fn. Aber es gibt ein problem, zu binden, überladen-Funktion. Wie zu beheben kompilieren Fehler des follow-codes? boost::function< void( IF_MAP::iterator ) > bmf = std::mem_fun1< void, IF_MAP, IF_MAP::iterator >( &IF_MAP::erase
4
Antworten
Wenn Sie eine vorgefertigte Klasse oder eine Vorlagen-Funktion (oder Kombination aus beiden), wie binden Sie diese Funktion, (die Erhaltung der template-parameter type)? Bekam ich etwas Hilfe, um die grundlegende syntax in einem post weiter unten zu binden,
4
Antworten
Ich versuche zu begreifen, Zeiger Funktions-Konzept in einem besseren Weg. Also ich habe ein sehr einfach und funktioniert beispielsweise so: #include <iostream> using namespace std; int add(int first, int second) { return first + second; } int
2
Antworten
Ich bin völlig stecken, an dieser Stelle. Ich habe den folgenden code: typedef void (*TPFN_ACC)(void); typedef char (*TPFN_EVE)(void); typedef struct { int idDestino; char * nombre; TPFN_EVE evento; TPFN_ACC accion; } TRANSICION; Und dann Mach ich das:
2
Antworten
Also ich habe diesen code: #include "boost_bind.h" #include <math.h> #include <vector> #include <algorithm> double foo(double num, double (*func)(double)) { return 65.4; } int main(int argc, char** argv) { std::vector<double> vec; vec.push_back(5.0); vec.push_back(6.0); std::transform(vec.begin(), vec.end(), vec.begin(), boost::bind(foo, _1,
4
Antworten
Sieht es aus wie std::cout kann nicht drucken, Mitglied, Funktion, Anschrift, zum Beispiel: #include <iostream> using std::cout; using std::endl; class TestClass { void MyFunc(void); public: void PrintMyFuncAddress(void); }; void TestClass::MyFunc(void) { return; } void TestClass::PrintMyFuncAddress(void) { printf("%p\n",
10
Antworten
Da die Funktion Satz von Anweisungen gespeichert, die in einem zusammenhängenden block im Speicher. Und die Adresse einer Funktion (entry point) ist die Adresse der ersten Anweisung in der Funktion. (von meiner wissen) Und so können wir
6
Antworten
Ist das richtig? int (*(*ptr)()); Ich weiß, das ist trivial, aber ich war auf der Suche nach einem alten test über diese Art von Konstrukten, und diese Kombination war nicht auf den test und es ist wirklich
4
Antworten
Ich glaube, ich kann leiden die gefürchtete "zufälligen Programmierer" Krankheit, zumindest, wenn es um die Typdefinitionen und Funktionszeigern. Also ich habe experimentiert mit allen Arten von Kombinationen von diesen zu analysieren, die Ergebnisse, basierend auf die Ausgabe,
3
Antworten
Bitte könnte mir jemand ein paar Tipps für die Erstellung von Funktionszeigern für MS winapi Funktionen? Ich bin versucht, einen Zeiger zu erstellen für DefWindowProc (DefWindowProcA/DefWindowProcW) aber immer diese Fehlermeldung: LRESULT (*dwp)(HWND, UINT, WPARAM, LPARAM) = &DefWindowProc;
7
Antworten
Folgenden wird eine einfache Funktion Zeiger, aber was ist, wenn ich speichern möchten, die Funktion Zeiger? In diesem Fall, was wäre die Deklaration von Variablen Aussehen? #include <iostream> #include <vector> using namespace std; double operation(double (*functocall)(double), double
3
Antworten
Ich versuche, eine Funktion aufzurufen, die bestanden, als Funktionszeiger mit kein argument, aber ich kann nicht damit es funktioniert. void *disconnectFunc; void D::setDisconnectFunc(void (*func)){ disconnectFunc = func; } void D::disconnected(){ *disconnectFunc; connected = false; } cdecl.org helfen
3
Antworten
Was ist NSComparisonResult und NSComparator? Habe ich einen gesehen, der die type-Definitionen, so etwas wie, dass: typedef NSComparisonResult (^NSComparator)(id obj1, id obj2); Ist es irgendwie anders als eine Funktion Zeiger? Auch, ich kann nicht einmal erraten, was
1
Antworten
Kann ich erstellen-Funktion-Zeiger in Fortran 90 code wie real, external :: f und verwenden Sie dann f als argument an eine andere Funktion/subroutine. Aber was ist, wenn ich möchte, dass ein array von Funktionszeigern? In C würde
2
Antworten
Ich will lernen, mehr über die Verwendung von Funktionszeigern in C structs als ein Weg, um zu emulieren Objekte-orientierte Programmierung, aber bei meiner Suche habe ich nur gefunden, die Fragen wie diese, wo die Antwort ist einfach,
2
Antworten
Ich habe eine static inline definierte Funktion, die in einer H-Datei, und an einer Stelle in eine C-Datei, ich bin Zuweisung einen Zeiger auf die Funktion, so etwas wie dieses: foo.h: static inline void frobnicate(void) { //frobs
2
Antworten
Habe ich: typedef void (*RespExtractor) (const cv::Mat & image, cv::Mat & resp); virtual void predict_image(const cv::Mat & src, cv::Mat & img_detect,cv::Size patch_size, RespExtractor ); void create_hough_features(const cv::Mat & image, cv::Mat & resp, FeatureParams & params = FeatureParams()
2
Antworten
Ich bin ein wenig verwirrt über die richtige syntax für die Zuweisung einer Funktion den Zeiger auf eine variable. Wenn ich eine Funktion foo int foo(); und ich bin Zuweisung einen Zeiger auf variable foo auf bar
7
Antworten
Ich habe einen void-Zeiger zurückgegeben, die von dlsym(), will ich rufen Sie die Funktion hingewiesen, die von der void-Zeiger. Also ich Mach eine Typ-Umwandlung durch casting: void *gptr = dlsym(some symbol..) ; typedef void (*fptr)(); fptr my_fptr
7
Antworten
Die Frage ist die folgende: betrachten Sie diese Stück code: #include <iostream> class aClass { public: void aTest(int a, int b) { printf("%d + %d = %d", a, b, a + b); } }; void function1(void (*function)(int,
3
Antworten
Ich habe eine C-Funktion einen Funktionszeiger als argument, es ist ein Destruktor, die nenne ich am Ende meines Programms. Hier ist der Prototyp der Funktion : int store_dest(void (*routine)(void *)); Will ich speichern, diese Funktion-Zeiger in einer
2
Antworten
Scheint es möglich zu ordnen einem Vektor von Funktionen in R wie diese: F <- c(function(){return(0)},function(){return(1)}) so, dass Sie aufgerufen werden können, wie dies (z.B.): F[[1]](). Dies gab mir den Eindruck, ich könnte dies tun: DF <-
2
Antworten
ist es notwendig, zu mir zu verwenden std::function aber ich weiß nicht, was ist std::function<void()> f_name = () { FNAME(); }; syntax bedeutet. Was ist das Ziel der Verwendung von std::function? Ist es ein Zeiger auf eine
1
Antworten
Kann mir jemand erklären, warum ich immer bin: error C2064: Begriff Auswertung nicht eine Funktion, die 1 Argumente für die Zeile: DoSomething->*pt2Func("test"); in dieser Klasse #ifndef DoSomething_H #define DoSomething_H #include <string> class DoSomething { public: DoSomething(const std::string
5
Antworten
Ich würde gerne einen Funktionszeiger als Mitglied einer Klasse, die einen Zeiger auf eine andere Funktion in der gleichen Klasse. Die Gründe, warum ich das hier mache, sind kompliziert. In diesem Beispiel möchte ich die Ausgabe "1"
4
Antworten
Warum und wie funktioniert dereferenzieren, einen Funktionszeiger nur "nichts tun"? Dies ist, was ich spreche: #include<stdio.h> void hello() { printf("hello"); } int main(void) { (*****hello)(); } Aus einem Kommentar über hier: Funktionszeiger dereferenzieren nur in Ordnung, aber
8
Antworten
Ich versuche zu speichern in einer std::tuple eine unterschiedliche Anzahl von Werten, die später verwendet werden als Argumente für einen Aufruf einer Funktion, Zeiger mit dem gespeicherten Typen. Habe ich ein Vereinfachtes Beispiel zeigt das problem, das
6
Antworten
Ist es möglich, übergeben eine lambda-Funktion als eine Funktion Zeiger? Wenn dem so ist, ich muss etwas falsch, denn ich bekomme einen compile-Fehler. Betrachten Sie das folgende Beispiel using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn
3
Antworten
In einer C-lib gibt es eine Funktion wartet eine Funktion Zeiger, so dass: lasvm_kcache_t* lasvm_kcache_create(lasvm_kernel_t kernelfunc, void *closure) wo lasvm_kernel_t ist definiert als: typedef double (*lasvm_kernel_t)(int i, int j, void* closure); Nun, wenn ich eine Methode in
1
Antworten
Ich bin nach dieser Beispiel. Aber wenn ich kompilieren gibt es einen Fehler: Ungültige Verwendung der nicht-statischen member-Funktion in der Zeile void(Machine:: *ptrs)() = { Machine::off, Machine::on }; Habe ich versucht, hinzuzufügen static zu void on(); an-Klasse
11
Antworten
Hatte ich einige Erfahrungen in letzter Zeit mit Funktionszeigern in C So vor sich geht mit der tradition der Beantwortung Ihrer eigenen Fragen, die ich beschlossen, eine kleine Zusammenfassung der Grundlagen, für diejenigen, die brauchen ein schnelles
4
Antworten
Ich versuche zu implementieren eine einfache swap-Funktion mit der Funktion Zeiger, aber wenn ich assign-Funktion, die die Adresse einer Funktion Zeiger immer bin pointersTofunctionB.c:14:6:warning: assignment from incompatible pointer type [enabled by default]. Unten ist mein code #include
3
Antworten
Blick auf die folgende code-snippet. Geschrieben wurde es in 2005, aber ich bin kompilieren Sie es mit dem neuesten gcc. xln_merge_nodes_without_lindo(coeff, cand_node_array, match1_array, match2_array) sm_matrix *coeff; array_t *cand_node_array, *match1_array, *match2_array; { node_t *n1, *n2; sm_row *row1, *row2;
5
Antworten
...ohne Verwendung von typedef. Mein Chef behauptet, er wurde einmal gefragt in einem interview, und als er gab seine Antwort, die der Interviewer sagte ihm, dass er nicht nutzen konnten, typedefs, da war es schlechter Stil. Egal,
3
Antworten
Ich versuche zu verwenden std::function in Verbindung mit std::bind, aber ich habe einige Probleme. Dies funktioniert: #include <functional> #include <iostream> void print() { std::cout << 2; } int main() { std::function<void ()> foo = print; (*foo.target<void (*)()>())();
3
Antworten
Ich versuche, verwenden Sie eine Klasse-Funktion (interrupt service routine), void (ClassName::*fp)(void)=ClassName::FunctionName; und befestigen Sie es an einem Arduino interrupt-pin mit der Funktion mit dem folgenden Typ Eingänge, aber das funktioniert nicht. void attachInterrupt(int, void (*)(void),int); Wie kann
1
Antworten
Ich habe einen Zeiger auf eine member-Funktion innerhalb einer Klasse definiert werden, z.B.: class Example { void (Example::*foo)(); void foo2(); }; In meinem main-code, den ich dann set foo: Example *a; a->foo = &Example::foo2; Jedoch, wenn ich
2
Antworten
Ziel ist die member-variable _AddValue Punkt der CreateFirstValue Funktion auf die Klasse initialisiert wird und nach dem ersten Aufruf von AddValue alle zukünftigen Anrufe, um es aufzurufen CreateAnotherValue. Zuvor, ich hatte nur eine einzige AddValue Funktion mit