No está claro si desea una respuesta C o una respuesta C ++, usaré C ya que ahí es donde primero se agregó la pregunta (C ++ es lo suficientemente similar):
Suponiendo que la dirección de la función se almacena en un puntero tipeado adecuadamente, solo use la expresión de llamada de función. Si no está almacenado en un puntero con el tipo apropiado, primero emite y luego llama:
#include #include #include int fun (int x) {return x + 2; } int main (nulo) { int (* fptr) (int) = diversión; // la dirección se almacena aquí intptr_t x = (intptr_t) fptr; // su forma entera aquí printf ("La dirección es% p (como puntero)" "o% #" PRIxPTR "(como entero) \ n", fptr, x); // ahora llámalos printf ("Llamando a través de ptr:% d, a través de int:% d \ n", fptr (9), ((int (*) (int)) x) (8)); }
demostración en vivo: Coliru Viewer
- ¿Cómo se usa la inteligencia artificial en el taller?
- ¿Se puede utilizar la programación lineal para la optimización de hiperparámetros en el aprendizaje automático?
- ¿Hay alguna manera de establecer un problema equivalente al problema P vs. NP pero para una máquina de Von Neumann finita fija?
- ¿Cómo es PDPU para CS?
- ¿Cuáles son las diferencias entre simulación y emulación?