Kann ich Funktionszeiger direkt aufrufen?

7

Die Frage, die ich stelle, wird nicht in der Produktion verwendet, es ist pure Neugierde

Sagen wir, ich habe eine Funktion, und ihr Prototyp ist:

%Vor%

Angenommen, ich kenne die statische Speicheradresse (z. B. 0xC0DE), kann ich Folgendes tun:

%Vor%

Kann ich diese Funktion jetzt irgendwie in einer Zeile aufrufen, ohne sie zu definieren? So:

%Vor%     
rev 03.07.2014, 21:30
quelle

2 Antworten

14

Wirf zu einem Funktionszeigertyp statt zu int* :

%Vor%

Beachten Sie, dass dies weiterhin undefiniertes Verhalten auslöst und vermieden werden muss, es sei denn, Ihre Implementierung dokumentiert dies explizit und Sie kümmern sich nicht um die Portabilität. Wenn Sie sicher sein möchten, verwenden Sie zumindest die Inline-Assembly, damit Sie sich auf die von der Zielarchitektur und nicht vom Compiler garantierten Garantien verlassen können.

    
rightfold 03.07.2014, 21:33
quelle
4

In C, aber nicht in C ++, können Sie die Argumenttypen weglassen:

%Vor%     
Ben Voigt 03.07.2014 21:50
quelle

Tags und Links