O efeito da declaração: as ocorrências de id no programa são substituídas por valor, com exceção das ocorrências que apareçam entre aspas ou façam parte de outros identificadores.
Exemplo:
#include <stdio.h>
#include <stdlib.h>
#define PI 31416
#define VERD 1 /* definicao nao usada no programa */
#define FALSO 0 /* definicao nao usada no programa */
#define enquanto while
#define se if
#define senao else
#define principal main
#define imprima printf
#define leia scanf
#define devolva return
#define sistema system
int principal()
{
int a;
imprima("Digite um inteiro: ");
leia("%d", &a);
enquanto (a > 0){
se (a > PI)
/* Note que o primeiro PI que esta' entre aspas nao sera' substituido */
imprima("%d maior que PI = %d\n", a, PI);
senao
imprima("%d menor ou igual a PI = %d\n", a, PI);
imprima("Digite um inteiro: ");
leia("%d", &a);
}
sistema("pause");
devolva 0;
}
Veja também: esqueleto de um programa para saber aonde as definições de constantes simbólicas devem aparecer no programa.