ExpertiDict

C · Essencial · Português · Técnico

macros predefinidas

/ˈma.kɾus pɾe.de.fi.ˈni.dɐs/substantivo

Nomes que o compilador define sozinho, como __FILE__, __LINE__ e __DATE__, além do identificador __func__, que ajudam a registrar em que ponto do código a execução está.

Onde usar

Aparecem em macros de log e de assert para imprimir arquivo, linha e função de onde o erro partiu. Só funcionam bem dentro de macro, pois uma função de log perde esse contexto.

Em código

#include <stdio.h>
#define LOG(m) \
  printf("%s:%d %s\n", __FILE__, __LINE__, m)
int main(void) {
  LOG("iniciando");
}

Exemplos

A macro de log imprime __FILE__ e __LINE__ em cada mensagem.

Usa __func__ para saber em qual função o erro aconteceu.

Cuidado

Usar __LINE__ dentro de uma função de log comum: ele sempre mostra a linha do próprio log, não a de quem o chamou.

Sinônimos

macros do compilador

Veja também

Todos os termos de C