Paso 1: Compilación condicional
Un ejemplo puede encontrarse en una de las bibliotecas de sensor DHT22 para deshabilitar el código que devuelve float valores. En la línea 35, 57 y 65 se puede ver "#if! defined(DHT22_NO_FLOAT)". Por defecto DHT22_NO_FLOAT no se define por lo que el código está incluido. Se puede definir en el código, antes de incluir la biblioteca, para desactivar estas funciones si no los necesita y reducir el tamaño compilado algo como:
#define DHT22_NO_FLOAT
#include < DHT22.h >
También puede utilizar #defines en su código para cambiar a la depuración y el código de producción, tales como:
Quite el comentario de este modo dev
#define DEVMODE 1
void setup() {}
#if defined(DEVMODE)
Serial.Begin(115200);
Serial.Print ("Devmode ON");
#else
Configuración de la pantalla LCD
myGLCD.InitLCD();
#endif
i2cbuffer = "";
i2cOutput = "";
Wire.Begin(I2C_SLAVE);
Wire.onRequest(sendI2Cdata);
Wire.onReceive(recvI2Cdata);
#if defined(DEVMODE)
Serial.println("Started");
#endif
}
En este caso, yo no inicializar el LCD, y más adelante en el código también no uso LCD funciones de dibujo. Esto me permite poner a prueba los métodos i2c mientras observa el puerto serie, pero sacrifica la pantalla LCD.