Possível erro ortográfico
Da página Discussão:Programar em C/Constantes
No tópico "DEFINED CONSTANTS (#DEFINE)" em:
"Repare que a diretiva de preprocessador não tem o “;”- “ponto e vírgula” no fim! O que é normal para diretivas de Preprocessador.
O que é que acontece se tivermos o “;” no fim? Será que encontrei um bug? se eu colocar o ; no #define NEWLINE '\n'; não acontece nada.
Vale lembrar que cada #define é preprocessador /* <--- AQUI ACREDITO QUE DEVA SER "PREPROCESSADO" AO INVÉS DE "PREPROCESSADOR*/, ou seja, não pode ser alterado dentro do programa durante sua execução."