#define NombreMacro[(parámetros)] CuerpoMacro
Una de las tareas del preprocesador es la definición y expansión de macros. Una macro no es sino una forma de sustitución de una serie de caracteres por otros. Una vez definida una macro, cuando se encuentra la secuencia de caracteres "NombreMacro" se sustituye por el cuerpo de la macro. Las macros se escriben normalmente en mayúsculas y pueden tener parámetros. En caso de que existan parámetros, éstos serán reemplazados adecuadamente en el cuerpo de ésta. Si es necesaria más de una línea para definir una macro se usa al final de la línea el carácter "\".
Para más información examine la ayuda sobre directivas del preprocesador.
#define BLOCK_SIZE 1024
Define una macro BLOCK_SIZE y le da el valor 1024. Cada ocurrencia de los diez caracteres BLOCK_SIZE en el fichero se sustituye por los cuatro caracteres 1024.
#define SQR(X) ((X)*(X)) ... i=SQR(j); /* la salida del preprocesador será i=((j)*(j)); */
Define una macro con parámetros.