En el código de un programa se pueden insertar instrucciones que van dirigidas al compilador del C y que no influyen directamente en la lógica del programa. Es lo que se llaman directivas del preprocesor. Todas estas directivas comienzan en la primera columna del archivo fuente y van precedidas del signo #
Con la directiva #include el preprocesor informa al compilador que debe incluir un archivo en la fuente del que se está editando. El archivo para incluir va entre los signos menor y mayor (<>) o entre comillas ("").
Si en el nombre del archivo a incluir se especifica un "path", dicho archivo solo es buscado en el directorio indicado. Si el nombre del archivo viene entre comillas, dicho archivo es buscado primeramente en el directorio actual. En caso de no encontrarse ahí, continúa la búsqueda en los directorios especificados en la línea de comando. Si aquí sigue sin encontrarse la búsqueda continúa en los directorios estandard definidos por el sistema.
Si no se especifica el "path" y el nombre del archivo que debe ser incluido se encuentra entre los signos menor y mayor (<>), los primeros directorios donde tiene lugar la búsqueda es en los especificados en la línea de comando del compilador. In caso de no hallarse prosigue la búsqueda en el directorio standard. Si sigue sin encontrarse se termina por buscar en directorio activo.
Define un identificador que sustituye a una secuencia de caracteres. Dicho identificador tiene el nombre de macro
Cada vez que el archivo fuente aparece el macro PI se sustituye con el valor 3.1416. Similarmente ocurre con el macro PROMPT y el macro FORMATO
Estas directivas sirven para indicar al compilador que puede haber secuencias del programa que no deben ser compiladas.
Con las directivas #if y #elif si la expresión que les sigue es verdadera se compilan todas las instrucciones de las líneas a continuación hasta donde se encuentre la directiva #endif.
La directiva #error bloquea el compilador. Su aplicación general es en la búsqueda de errores (debugging).
Otro método para la compilación condicionada son las directivas #ifdef e #ifndef, que significan "si está definido", "si no está definido" respectivamente.
Con #ifdef si el nombre del macro ha sido definido anteriormente con una directiva #define, la secuencia de instrucciones que se encuentra entre #ifdef y # endif es compilada.
Con #ifndef si el nombre del macro no ha sido definido por ninguna directiva #define, la secuencia de instrucciones que se encuentra entre #ifdef y # endif es compilada.
Tanto #ifdef como #ifndef pueden incluir una directiva #else pero no #elif.
Se trata de una directiva definida en fase de la realización del compilador, que permite enviar al mismo varias instrucciones predefinidas
Donde por nombre se entiende el nombre de una de las directivas que a continuación se dan.
La directiva #pragma argused precede a una función. Impide la emisión de un mensaje de advertencia cuando en el cuerpo de la función falte un argumento.
La directiva exit indica una o mas funciones que son ejecutadas final del programa. La directiva startup especifica una mas funciones que son ejecutadas inicio del programa.
Priority (prioridad) es un valor comprendido entre 64 y 255. Los valores comprendidos entre 0 y 63 están reservados. La prioridad determina el orden de llamada de las funciones del mismo tipo. Si no se especifica la prioridad el valor asignado por defecto es 100 (default). Function_name se declara del modo siguiente: