Defina una macro del preprocesador con comandos del preprocesador.
Estoy usando a menudo una sintaxis como
#ifdef __cplusplus
extern “C”
#endif
void myCFunc();
así que intenté hacer una macro para tener una sintaxis como
CFUNC(void myCFunc());
No estoy seguro si es algo que se pueda hacer (¿el preprocesador puede ejecutar su código recién generado?)
La idea fallida fue algo como
define CFUNC(ARGUMENT) \
#ifdef __cplusplus \
extern "C" \
#endif \
ARGUMENT;
¿Hay alguna manera de hacer una macro que genere código para el preprocesador?
Gracias.
davy.ai
Sí, es posible hacer una macro que genere código para el preprocesador. La macro que has escrito es un buen comienzo, pero necesita ser modificada ligeramente para que funcione. La macro modificada debería verse así:
Ten en cuenta que el punto y coma al final de la macro ha sido eliminado. Esto se debe a que el punto y coma forma parte del argumento que se pasa a la macro, y no debe estar incluido en la macro misma.