Ich versuche, eine Struktur-Funktion auf eine andere Funktion einer anderen Struktur zu zeigen,Funktion struct Punkte zu anderen Funktion anderer struct
Plase dies berücksichtigen:
// Main Structure:
typedef struct
{
int GetValA(int a)
{
return a * 2;
}
} x;
typedef struct
{
int(*HGetValA)(int); // Pointer function
} hookx;
// Then
int main()
{
x v1;
hookx* v2;
v2 = (hookx*)&v1; // or 0x0 memory address
// Now declaring pointer function
v2->HGetValA = (int(*)(int))&v1.GetValA; // Pointing to function of the main structure.
}
für mich, das sieht gut aus, aber bei der Kompilierung gibt mir den Fehler:
[Warning] converting from 'int (x::)(int)' to 'int ()(int)' [-Wpmf-conversions]
ist es nicht möglich ohne einen Namen? – nikomaster
Es funktioniert, um ein Schlüsselwort 'static' vor' GetValA() 'in diesem Programm hinzuzufügen. aber vielleicht schreibst du nicht genau. – uscq