A linguagem C nos permite definir macros, constantes e renomear recursos utilizando a diretiva
#define. Com o uso dessa diretiva, podemos criamos macros que antes da compilação, suas
chamadas são substituídas pelas declarações em seus corpos.
Sintaxe
#define nome_macro valor / expressão / funcao
Exemplo 1
#include <stdio.h>
#define DEBUG 1
void main()
{
printf("%d \n",DEBUG); //DEBUG é substituído por 1 antes da compilação.
}
Saída
1
Podemos dar apelidos aos tipos de dados nativos da linguagem C "criando" novos tipos para evitar a
digitação de longos tipos de dados
Exemplo 2
#include <stdio.h>
#define uint unsigned int
void main()
{
uint teste = 999; //uint é substituído por unsigned int
printf("%u \n",teste);
}
Saída
999
Além de criar apelidos para os tipos de dados, como no exemplo acima, podemos apelidar também os
comandos da linguagem C, como no exemplo abaixo:
Exemplo 3
#include <stdio.h>
#define se if
#define senao else
int main()
{
se(1 != 1)
printf("%s \n", "if substituido!");
senao
printf("%s \n", "else substituido!");
}
Saída
else substituido!
A diretiva #define nos permite a criação de macros mais complexas em que seu conteúdo,
sendo possível utilizar variáveis, funções e expressões na declaração de seu corpo.
Mais sobre macros pode ser visto em C Diretivas: Macros.