El preprocesador
sustituirá cada ocurrencia del identificador_de_macro en
el fichero fuente, por la secuencia con algunas excepciones.
Cada sustitución se conoce como una expansión de
la macro. La secuencia es llamada a menudo cuerpo de la macro.
Si la secuencia no existe, el identificador_de_macro será
eliminado cada vez que aparezca en el fichero fuente.
Después
de cada expansión individual, se vuelve a examinar el texto
expandido a la búsqueda de nuevas macros, que serán
expandidas a su vez. Esto permite la posibilidad de hacer macros
anidadas. Si la nueva expansión tiene la forma de una directiva
de preprocesador, no será reconocida como tal.
Existen otras restricciones a la expansión de macros:
Las ocurrencias
de macros dentro de literales, cadenas, constantes alfanuméricas
o comentarios no serán expandidas.
Una macro no será expandida durante su propia expansión,
así #define A A, no será expandida indefinidamente.
No es
necesario añadir un punto y coma para terminar una
directiva de preprocesador. Cualquier carácter que se encuentre
en una secuencia de macro, incluido el punto y coma, aparecerá
en la expansión de la macro. La secuencia termina en el primer
retorno de línea encontrado. Las secuencias de espacios o
comentarios en la secuencia, se expandirán como un único
espacio.
Directiva #undef
La
directiva #undef sirve para eliminar definiciones de macros
previamente definidas. La definición de la macro se olvida
y el identificador queda indefinido.
Sintaxis:
|