A linguagem C nos permite definir macros, constantes e renomear recursos
utilizando a diretiva #define. Com o uso dessa diretiva, podemos declarar macros que durante a compilação,
suas chamadas são substituídas pelas declarações contidas 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.
Mais sobre macros pode ser visto em C Diretivas: Macros.