Macros

As macros permitem definir blocos de código que são substituídos pelos seus valores correspondentes antes da compilação.

Macros em C são pedaços de código que podem ser pré-processados antes da compilação. Elas são definidas usando a diretiva #define. As macros são substituídas pelo seu conteúdo durante a etapa de pré-processamento.

Sintaxe

A sintaxe básica para definir macros é a seguinte:

#define NOME_DA_MACRO valor_da_macro

Os nomes das macros devem estar em maiúsculas por uma questão de legibilidade do código.

Constantes simbólicas

As macros são frequentemente usadas para definir constantes simbólicas, que são valores que não podem ser alterados:

#define PI 3.1416

Funções inline

As macros podem ser usadas para criar funções inline, que são substituídas diretamente pelo código da função em vez de uma chamada de função. Isso pode melhorar o desempenho em pequenas funções:

#define QUADRADO(x) (x * x)

Exemplos de macros

  1. Macro para calcular o quadrado de um numero:

#define QUADRADO(x) ((x) * (x))

Podemos usar esta macro da seguinte maneira:

int resultado = QUADRADO(7);  // Resultado é 49.

2. Macros para determinar o maior e o menor entre dois números:

#define MAX(x, y) ((x) > (y) ? (x) : (y))

#define MIN(x, y) ((x) < (y) ? (x) : (y))

Usamos estas macros de maneira seguinte:

int maior = MAX(7, 34);  // maior é 7.

int menor = MIN(7, 34);  // menor é 34.

3. Macros para cálculos matemáticos:

#define PI 3.1416

#define AREA_QUADRADO(lado) ((lado) * (lado))

#define AREA_CIRCULO(raio) (PI * (raio) * (raio))

Usamos estas macros abaixo:

double area = AREA_CIRCULO(7);