Es para la compilación condicional, por lo que puede incluir o eliminar fragmentos de código en base a los atributos del proyecto que tienden a ser:
- plataforma Previsto (Windows/Linux/XB360/PS3/Iphone, etc ....)
- de lanzamiento o de depuración (el registro general, afirma etc solamente están incluidos en una versión de depuración)
también se pueden utilizar para desactivar grandes partes de un sistema rápido, por ejemplo, durante el desarrollo de un juego , Podría definir
#define PLAYSOUNDS
y luego envolver el último momento para reproducir un sonido en:
#ifdef PLAYSOUNDS
// Do lots of funk to play a sound
return true;
#else
return true;
así que es muy fácil para que encienda y apaga la reproducción de sonidos para una generación. (Normalmente no reproduzco sonidos cuando se depura porque se interpone en mi música personal :)) La ventaja es que no está introduciendo una rama mediante la adición de una instrucción if ....