Dudas punteros a funciones [Solucionado]

Estoy probando algunas cosas, para ver como funciona, como se escribe el codigo, y llegue al siguiente caso, sin ninguna utilidad practica, simplemente para probar y ver si compila.
La idea es tener un método intermediario en la ejecución de ciertas funciones.

void setup() {                
  pinMode(13, OUTPUT);     
}

void loop() {
  void (* enciendePtr)();
  enciendePtr = encender;
  
  void (* apagarPtr)();
  apagarPtr = apagar;

  ejecutador( enciendePtr );
  delay(1000);              // wait for a second
  ejecutador( apagarPtr );
  delay(1000);              // wait for a second
}

void encender(){
  digitalWrite(13, HIGH);   // set the LED on
}
void apagar(){
    digitalWrite(13, LOW);    // set the LED off
}

void ejecutador( void(*ejecutable)()){
(*ejecutable)();
}

Pero me da el siguiente error:

sketch_dec26a.cpp: In function 'void loop()':
FuncionesComoParametros:13: error: 'ejecutador' was not declared in this scope

Alguna pista de que puede estar mal? Muchas Gracias.

Vas a tener que declarar la función ejecutador antes. Puedes hacer de dos formas:

  1. Declararla como extern void ejecutador ( void (*f)(void));
  2. Mover la declaración de la función antes del sétup, en algún punto antes de usarla.

El problema es que el compilador no sabe cuanto espacio va a necesitar para invocarla y es el error que te esta dando.

Buenisimo, ahi lo pude hacer andar. Muchas gracias por la respuesta y su velocidad!

Sin problemas, un saludo.