How Arduino IDE pre-processing work?