¡No sé cómo lograr esto!
cómo obtener el puntero a la función en los argumentos de va_list?
muchas gracias.¿Cómo pasar un puntero a una función con argumentos variables?
5
A
Respuesta
4
Usar un typedef para el tipo de puntero de función.
3
typedefs menudo hacen que trabajar con punteros a funciones más fáciles, pero no son necesarios.
#include <stdarg.h>
void foo(int count, ...) {
va_list ap;
int i;
va_start(ap, count);
for (i = 0; i < count; i++) {
void (*bar)() = va_arg(ap, void (*)());
(*bar)();
}
va_end(ap);
}
Cuestiones relacionadas
- 1. Pasar la función puntero a miembro como puntero a función
- 2. F # pasar un operador con argumentos a una función
- 3. C: ¿Cómo pasar un doble puntero a una función
- 4. cómo pasar argumentos variables a otro método?
- 5. Para pasar un puntero a una función miembro
- 6. Pasar un puntero a una función de ensamblaje
- 7. pasar argumentos a una función en un único vector
- 8. ¿Pasar argumentos de función a una función interna?
- 9. En C, ¿es seguro lanzar un puntero de función variable a un puntero de función con argumentos finitos?
- 10. ¿Cómo pasar un archivo a una función?
- 11. Pasar un CComPtr a una función con un prototipo puntero prima
- 12. Pasar múltiples argumentos a una función de enhebrar
- 13. ¿Cómo pasar argumentos a NSAction?
- 14. ¿Cómo pasar un vector a una función?
- 15. ¿Cómo paso un puntero a una función c en Cython?
- 16. ¿Cómo pasar todos los argumentos pasados a mi script bash a una función mía?
- 17. ¿Cuántos argumentos puedo pasar a una función bash?
- 18. ¿Cómo pasar una matriz 2D dinámicamente asignada a una función?
- 19. cómo pasar argumentos a un alias
- 20. Llamar a un constructor desde argumentos variables con PHP
- 21. pasar un puntero a una función que no coincide con los requisitos del parámetro formal
- 22. Cómo pasar argumentos a la función referenciada por la variable
- 23. jQuery $ .when() con argumentos variables
- 24. función con múltiples argumentos
- 25. ¿Cómo puedo pasar boost :: shared_ptr como un puntero a una función de subproceso de Windows?
- 26. pasar todos los argumentos a un constructor
- 27. ¿Cómo es que un puntero a una clase derivada no se puede pasar a una función esperando una referencia a un puntero a la clase base?
- 28. ¿Pasar variables de una función a otra función en un controlador en codeigniter?
- 29. cómo pasar argumentos a la función dentro de una función en r
- 30. Pasar matriz completa a una función
En general, para crear un nombre de tipo (para su uso con 'va_arg',' sizeof', un encasillado o similar), escribir una declaración de una variable de ese tipo, a continuación, quitar el nombre de la variable. – caf
En realidad, esto es (irónicamente) el único momento en que se requieren typedefs. Hablando del parámetro * type * para va_arg en la sección 7.15.1.1 del estándar C: "El tipo de parámetro debe ser un nombre de tipo especificado tal que el tipo de un puntero a un objeto que tiene el tipo especificado puede obtenerse simplemente por postfijación a * para escribir ". Esto significa que muchos tipos no triviales no están garantizados para funcionar, incluido su ejemplo, sin un typedef. –
No se compila en mi conjunto de herramientas. – KeatsPeeks