ExpertiDict

C++ · Essencial · Português · Técnico

macro

ˈmakɾusubstantivo

Trecho de texto definido com #define e substituído pelo pré-processador antes da compilação. Não conhece tipos nem escopo, e pode ter ou não argumentos.

Onde usar

Aparece em código legado, em flags de plataforma e nas guardas de include. Em código novo, constexpr, inline e templates costumam ser preferidos por respeitarem tipos e escopo.

Em código

#define SQ(x) ((x) * (x))
int a = 3;
int b = SQ(a + 1);  // 16
// SQ(a++) avalia a++ duas vezes

Exemplos

Troque essa macro por uma função constexpr.

O compilador mostrou um erro estranho porque a macro expandiu antes.

Cuidado

Os argumentos de uma macro são repetidos como texto: SQ(i++) executa o incremento duas vezes.

Sinônimos

#define

Origem

Abreviação de macroinstrução.

Veja também

Todos os termos de C++