Cada compilador tiene las suyas exclusivas pero hay muchas que son estandar,como por ejemplo el #define.
Este #define se usa para definir etiquetas,al igual que #bit o #byte.Estas últimas lo que hacen es asociar esa etiqueta que se define,con una dirección de memoria (#byte) o con un bit de una dirección de memoria concreta (#bit).
Esto para lo que vale es para poder crear cierto orden y legibilidad,pudiendo usarse para simplificar el código.
El #define lo que hace es asociar una etiqueta a la expresión que le pongas después,por lo que cada vez que en tu código aparezca la etiqueta lo que está apareciendo realmente es la expresión.
#define FALSO FALSE
#define VERDADERO TRUE
#define incrementa_uno(x) (x = x + 1)
void programita()
{
if(!condicion)
{
incrementa_uno(numero);
condicion = VERDADERO;
}
}
O sea,un #define no es un recurso para realizar operaciones ni tareas,es un simple sustituto,una etiqueta que te sirve para hacer tu codigo más legible.
En la ayuda de CCS vienen explicadas todas las directivas del mismo,no se si en C30 también vendrán explicadas,pero debería...